申し訳ありませんが、この質問は以前に回答されている場合。私はそれを探してみました。私は本当に答えを得るために何を検索するか分からない。私はReactの初心者ですので、どんな助けでも大歓迎です。配列から返されるすべてのコンポーネントでボタンをどのように動作させることができますか? ReactJS
のlistItems変数の中では、私は項目配列、ボタンで各項目ごとにコンポーネントを返却しています。各コンポーネントのボタンでハンドルを放したい場合は、の機能を解除してください。現在、コンソールでエラーが発生します: "handleRemove は定義されていません"。
var TaskListComponent = React.createClass({
getInitialState : function(){
return {
items:["To do item 1","To do item 2","To do item 3"]
};
},
handleRemove : function(){
console.log("test")
},
render: function(){
var listItems = this.state.items.map(function(item){
return <li> {item} <button onClick={this.handleRemove}>X</button></li>;
});
return(
<div>
Child Container
<ul>{listItems}</ul>
</div>
);
}
});
結局私がarrayから、クリックされた対応する項目を削除するには、ボタンを取得できるようにしたいです。
ご迷惑をおかけして申し訳ありません。
おかげで、.map
内部の機能をコンポーネントにバインドされていないので、起こって 萌え
ありがとうヒープ。この回答は最高でした。クリックされた配列の値/キーを取得する方法については、関数に渡されるので、handleRemove関数の配列値をconsole.logに渡すことができます。私はどこでも私は考えることができました、私はどちらもGoogleにはわからない。私は彼らから、コンポーネントの状態を読んで更新できると思います。 –
handleRemoveをhandleRemoveとして定義できます。 function(value){ console.log(value); } 現在のアイテムを取得するには、 onClick = {this.handleRemove.bind(this、item)} にあなたのonClickを変換してください。あなたがCreateClassの代わりにes6クラスを使用していない場合は、次のようにしてください: onClick = {this.handleRemove(item)} – erdysson
これは、onClick {=()=> this.handleRemove(item)}を使用して終了します。ありがとう。 –