gpt4 book ai didi

javascript - 使用 setState 设置新状态和更改旧状态之间的区别

转载 作者:行者123 更新时间:2023-11-28 13:01:45 25 4
gpt4 key购买 nike

我正在尝试设置组件中状态键之一的值。该状态如下所示:

this.state = {
stateValue1: false,
stateValue2: false,
stateValue3: false
};

要更改我的状态,我使用以下函数:

 handleSwitch = type => {

this.setState((prevState, type) => ({
...prevState,
[type]: !prevState[type]
}));

};

根据我想要更改的状态键,我使用它,如下所示:

handleSwitch("stateValue2")

但结果我得到

    {
stateValue1: false,
stateValue2: false,
stateValue3: false
[object Object]: true
}

但是,当我使用新对象作为 setState 函数的参数时,一切正常。为什么?

工作代码:

handleNotificationSwitch = type => {
const newState = {
...this.state,
[type]: !this.state[type]
};

this.setState(newState);
};

及其结果:

    {
stateValue1: false,
stateValue2: true,
stateValue3: false
}

最佳答案

根据docs setState 的更新函数接受两个参数,第二个是 props。所以,实际上,您将 props 设置为 state。

关于javascript - 使用 setState 设置新状态和更改旧状态之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49817383/

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