私はReactを初めて使用しました。これは非常に問題ではありますが、なぜ動作しないのか分かりません。Reactの子コンポーネントにイベントを渡します。
私は単純なtodoリストを作成しようとしています。
マイTodoList.js
コンポーネントは次のようになります。
import React, {Component} from 'react';
import TodoItem from './TodoItem';
export default class TodoList extends Component{
constructor(props){
super(props);
this.state = {
todos:[
{
title:"todo1"
},
{
title:"todo3"
},
{
title:"todo2"
}
]
}
}
handleRemove(idx){
alert('works');
}
render(){
var todos = this.state.todos.map(function(t,idx){
return(<TodoItem
remove={this.handleRemove.bind(this,idx)}
title={t.title}
/>)
})
return (
<div>
<h1>To do</h1>
<div>{todos}</div>
</div>
)
}
}
私の子コンポーネントは次のようになります。
import React, {Component} from 'react';
export default class TodoItem extends Component{
render(){
return (
<div>{this.props.title}
<button onClick={this.props.remove}>X</button>
</div>
)
}
}
しかし、私は「未定義の 『handleRemove』プロパティを読み取ることができません」とはTypeErrorを取得します。私はなぜマップの機能{this}
が未定義であるのだろうかと思っていますか?
私はこのコンストラクタにthis.handleRemove = this.handleRemove.bind(this)
を入れようとしました。
何も変更していません。 の中にthis
も定義してはいけませんか?
ahhhhhhh、ありがとう!私はどうしてそんなに盲目的になりましたか?ありがとう! – Tom