class Example extends React.Component {
constructor() {
super();
this.isChecked = this.isChecked.bind(this);
}
isChecked(ex){
return this.props.defaults && $.inArray(ex, this.props.defaults);
}
render() {
return (
<div className="example">
{this.props.items.map(item => (
var checked = this.isChecked({item.type});
<span key={item.type}>
<input type="checkbox" {checked ? 'checked' : ''} name="example" value={item.type} id={item.type} />
<label htmlFor={item.type}>{item.display}</label>
</span>
))}
</div>
);
}
}
における変数に基づいて、チェックボックスの状態を設定し、I成分this.props.items
とデフォルトthis.props.defaults
のリストにアイテムのリストを通過しました。各項目について、項目がデフォルトのリストにある場合は、その状態をchecked
にします。全体のデザインを同じままにしておくと、どうすればできますか? (注:マップ内で変数を宣言する問題を避けるために、アプリケーションを再設計することができますが、それは問題ではありません)。条件付き上記の例でReactJS
上記のコードは機能しません(明らかに)、私はここで何をしようとしているのかをみんなに伝えようとしています。これを実行すると、 "var"が宣言されている場所で "予期しないトークン"のようなエラーが発生します。
アドバイスをいただきありがとうございます。私が行ったやり方をチェックした理由は、HTMLでは「チェックされた」という単語が存在するだけで、ボックスをチェックする必要があることを示しています。値は重要ではありません。それは間違っていますか?しかし、私は試行していたように、dangerouslySetInnerHtmlメソッドを使用しなければならないと思います。ちなみに、アドバイスは大歓迎です。 – KyleM
ああ、私はあなたがちょうどチェックアウトしようとしていた理由を参照してください、しかし、この場合、有効なjsx構文ではありません。 Reactがあなたのための最適化を処理しますが、DOMでは "checked = true"は表示されません。 –
ありがとうございました。あなたのソリューションは機能しました。例えば、key = {item.type}はkey = {item.type + checked}でなければならないので、デフォルトのチェック項目が変更された場合、reactJSはリストを再レンダリングします。明らかに、私の実装に固有なので、あなたはそれを知る方法がありませんでした。あなたの助けをありがとう! – KyleM