我知道我不应该直接在 React 中改变状态,但是当我使用函数时的情况如何:
onSocialClick = e => {
const id = e.target.value;
this.setState((prevState, props) => {
prevState[id] = !(prevState[id]);
return prevState;
});
};
修改传递的对象是错误的吗?
编辑:
事实证明,我们大多数人都错了。React文档现在清楚地说明了这一点:
state 是对应用更改时组件状态的引用。它不应该被直接变异。相反,应该通过基于 state 和 props 的输入构建一个新对象来表示更改
感谢@Tomáš Hübelbauer 在评论中指出。