条件が真である場合、HTMLの特定のセクションをレンダリングできるようにします。私は、react
render()内の条件if式を設定する正しい方法について興味があります。Reactレンダー()内の条件式(if)を正しく設定する方法
オンラインで調べて、インライン式でこれを行う方法を見つけて、値が真であるかどうかを確認し、そうであれば残りの要素をレンダリングします。
また、レンダリングするhtmlの変数を作成する別の方法を設定しました。
質問:
私は条件の一つとして、両方のtd
タグをラップすることができませんでした。これは、td
タグごとに行う必要があるようです。
両方のタグの周りでこれを行う方法はありますか、またはそれらの周りに別の要素を設定する必要がありますか?
おそらく=>
機能を使用して設定することもできます。
コードインラインのレンダリング()式:
render() {
// get the data from the JSON entity for each attribute
var tdsForObject = this.props.jsonAttributes.map(jsonAttribute =>
<td>{this.props.object.entity[jsonAttribute]}</td>
);
return (
<tbody>
<tr>
{tdsForObject}
{this.props.objectTypeEditable &&
<td>
<UpdateDialog object={this.props.object}
objectName={this.props.objectName}
attributes={this.props.attributes}
onUpdate={this.props.onUpdate}/>
</td>
}
{this.props.objectTypeEditable &&
<td>
<button onClick={this.handleDelete}>Delete</button>
</td>
}
</tr>
</tbody>
)
}
コード(レンダリングの外にボタンを作成する)
render() {
// get the data from the JSON entity for each attribute
var tdsForObject = this.props.jsonAttributes.map(jsonAttribute =>
<td>{this.props.object.entity[jsonAttribute]}</td>
);
var updateButton;
var deleteButton;
// if the object can be edited create the update and delete buttons
if (this.props.objectTypeEditable) {
updateButton = (
<td>
<UpdateDialog object={this.props.object}
objectName={this.props.objectName}
attributes={this.props.attributes}
onUpdate={this.props.onUpdate}/>
</td>
);
deleteButton = (
<td>
<button onClick={this.handleDelete}>Delete</button>
</td>
);
}
return (
<tbody>
<tr>
{tdsForObject}
{updateButton}
{deleteButton}
</tr>
</tbody>
)
}
@Raphael_ParentはいReactのウェブサイトに表示されているように、私はES6の矢印機能を見ました。私はこの方法を試して、それも同様に動作します。私は反応するのが新しく、上で議論した3つのタイプすべての中から、最も簡単に読むことができる変数にtdを設定することがわかります。私は反応が新しいので、私は確信していません。これは正しい解決策と考えられるのでしょうか、それとも返却団体に押し込もうとしますか?上記の2番目のコードのセクションで示されているように、return文の前にif文と変数宣言を使って設定を読み込む方がはるかに簡単です。 – ALM
@ALMあなたの質問には正しい解決策です。あなたは「両方のタグの周りにこれを行う方法はありますか?あるいは、それらの周りに別の要素を設定する必要がありますか?」と私は答えました。方法はありますが、それは少し読みにくいです。それはあなた次第です!私はどちらか他を見て気にしません。 –
@Raphael_Parent私はあなたの答えが正しいことを理解しています。私はこれらの3つのソリューションのいずれかが他のものより優れていることを知りたがっていましたか?私の好みの解決策は、私が2番目のコード例で提供したものです。私はそれが新しいものとして反応する方法でその大丈夫を確認したいだけです。 ありがとう – ALM