【发布时间】:2019-05-14 10:00:57
【问题描述】:
React 新手,尝试更新一个对象的状态,其中 on 属性已经设置了布尔值。但是,状态似乎没有更新。
我知道状态是异步更新的,也许这可以在这里发挥作用?我不相信我可以使用带有对象和回调函数的 setState 方法,因为我需要访问之前的状态。
这是我的初始状态:
items: [
{
id: 0,
title: 'Dev Grub',
selected: false
},
...
]
这是我的事件处理程序:
handleCardClick(id, card) {
this.setState((preState, props) => ({
[preState.items[id].selected]: [preState.items[id].selected] ? false : true
}));
console.log('new state: ', this.state.items[id].selected);
}
我也试过这个而不是三元:![card.selected]
【问题讨论】:
-
[preState.items[id].selected]:应该是selected: ...尝试记录状态并检查您更新的对象 -
你必须返回一个看起来像这样的对象:
{items: [....]},但是你返回的是这样的:{'true': false}
标签: javascript reactjs