我正在使用React,我的狀態被定義爲一個對象數組。 我需要能夠改變state.data陣列只在一個特定的元素,例如ID對象1如何使用setState更新對象數組中的對象
我想知道:
- 什麼是正確的方法如何使用
setState()
在這種情況下。
constructor(props) {
super(props);
this.state = {
data: [{
id: 0,
title: 'Buy a',
status: 0, // 0 = todo, 1 = done
},
{
id: 1,
title: 'Buy b',
status: 0,
},
{
id: 2,
title: 'Buy c',
status: 0,
}
]
};
this.onTitleChange = this.onTitleChange.bind(this);
}
onTitleChange(id, title) {
console.log(id, title);
debugger
}
好的答案。只是想指出@Radex應該謹慎使用'setState':'onTitleChange'函數不應該被調用到組件正在更新的生命週期方法中(例如componentDidUpdate),因爲否則它會導致無限循環。預先檢查此文檔條目https://facebook.github.io/react/docs/state-and-lifecycle.html – Fotis