0
下面的代码按预期工作,除非单击可点击列表项目。所以,当我们添加项目时,映射的id是很好的,当单击<li>
时是undefined
。 请问,这个非常基础的代码有什么问题?Redux:无法读取未定义的属性“ID”
let nextId = 0;
export default React.createClass({
addItem(){
let text = ReactDOM.findDOMNode(this.refs.doos).value;
store.dispatch({
type: 'ADD_TODO',
text,
id: nextId++
})
ReactDOM.findDOMNode(this.refs.doos).value = '';
},
render(){
return <div>
<p>Toddos!</p>
<input ref="doos" type="text"/>
<button onClick={this.addItem}>Add Item</button>
<ul>
{this.props.todos.map(todo =>
<li key={todo.id} // Can not read property when clicked!
onClick={() => {
store.dispatch({
type: 'TOGGLE_TODO',
id: todo.id
});
}}
style={{
textDecoration: todo.completed ?
'line-through' : 'none',
cursor: 'pointer'
}}>
{todo.text}
</li>
)}
</ul>
</div>
}
});
'情况 'TOGGLE_TODO': 回报state.map(T =>待办事项(T,动作));' 代码如下像这样...... –
你能在你的todos减速器中注销你的状态并告诉我说了什么吗? –
请看看这个工作示例http://redux.skepton.ru/和Gitub回购 –