相关疑难解决方法(0)

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

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

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

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

编辑:

事实证明,我们大多数人在这里都错了.React docs现在清楚地说明了这一点:

state是对应用更改时组件状态的引用.它不应该直接变异.相反,应该通过基于state和props的输入构建新对象来表示更改

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

setstate reactjs

8
推荐指数
1
解决办法
1805
查看次数

标签 统计

reactjs ×1

setstate ×1