gpt4 book ai didi

reactjs - 我可以改变传递给 setState 函数的状态吗?

转载 作者:行者123 更新时间:2023-12-03 13:20:41 25 4
gpt4 key购买 nike

我知道我不应该直接在 React 中改变状态,但是当我使用函数时情况如何:

onSocialClick = e => {
const id = e.target.value;
this.setState((prevState, props) => {
prevState[id] = !(prevState[id]);
return prevState;
});
};

修改传递的对象是否错误?

编辑:

事实证明,我们大多数人都错了。 react docs state it clearly现在:

state is a reference to the component state at the time the change is being applied. It should not be directly mutated. Instead, changes should be represented by building a new object based on the input from state and props

感谢 @Tomáš Hübelbauer 在评论中指出。

最佳答案

更简洁的方法是直接引用您想要编辑的属性:

doIt = () => this.setState(({ [id]: prevValue }) => ({
[id]: !prevValue,
}));

关于reactjs - 我可以改变传递给 setState 函数的状态吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43305429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com