如何更新toggleGroceryCompleteness
方法中的groceries
项(将completed
设置为True
)?
我试过this.setState({groceries[groceryIndex]:{completed:true});
constructor(props) {
super(props);
this.state = {
groceries: [
{
name: "Apples",
completed: false
}
],
newGroceryName: ""
};
toggleGroceryCompleteness(groceryIndex) {
console.log(groceryIndex);
console.log(this.state.groceries[groceryIndex]);
}
发布于 2017-07-06 15:32:51
由于您正在编辑以前设置的状态的值,因此您应该使用setState
的以下定义
this.setState((prevState, props) => {
const newGroceries = prevState.groceries.slice()
newGroceries[groceryIndex].completed = true
return { ...prevState, groceries: newGroceries }
})
这将从setState
调用之前获取groceries
状态数组的值,并将其分配给要修改的新变量,从而访问给定的索引并将completed
属性设置为true
。然后返回一个新的对象/状态,其中包含以前状态值中的所有内容,但修改后的groceries
属性是新的修改后的版本。
https://stackoverflow.com/questions/44953104
复制