私はこのコードでは、リレーと私のコンポーネントを変異しようとしていますが、私は反応コンポーネントでonClickイベントを渡すことができませんか?
handleSubmit = (e) => {
e.preventDefault();
Relay.Store.commitUpdate(
new createTodoMutation({
text: this.refs.textForNewTodo.value,
store: this.props.store
})
);
this.refs.textForNewTodo.value="";
}
handleOnClick = (id) => {
id.preventDefault();
Relay.Store.commitUpdate(
new toggleTodoStatus({
id: id,
store: this.props.store
})
);
}
render() {
let todolist = this.props.store.todoConnection.edges.map((edge) => {
return (
<li key={edge.node.id} onClick={this.handleOnClick(edge.node.id)}>
<p>{edge.node.text}</p>
</li>
);
});
return (
<div>
<h3>Todos</h3>
<form onSubmit={this.handleSubmit} >
<input type="text" placeholder="Todo text" ref="textForNewTodo" />
<button type="submit">Add</button>
</form>
Showing:
<select onChange={this.setLimit} defaultValue={this.props.relay.variables.limit}>
<option value="5">5</option>
<option value="10">10</option>
</select>
<ul>
{todolist}
</ul>
</div>
);
handleSubmitがhandleOnClickリストに取り組んでいるが、リストにonClickイベントを置くことができない理由を私は知らないではないと私ですこのエラーが発生しました。 "Uncaught TypeError:未定義の 'id'プロパティを読み取ることができませんでしたが、onClick = {this.handleOnClick(edge.node.id)}で呼び出されたときにedge.node.idを渡しています。私はこのコードで何が間違っているのか分かりません。助けて?
私はUncaught TypeErrorを持っています:未定義のエラーの 'id'プロパティを読み取ることができません:( –
@iamnewbie 'onClick'行からのエラーですか?つまり、' edge'は 'node'というプロパティを持っていませんログアウトしてみてください。 –