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回購 –