【发布时间】:2018-09-23 20:04:21
【问题描述】:
我正在尝试设置组件中状态键之一的值。状态如下:
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
}
【问题讨论】:
-
(prevState, type) =>,隐藏包含函数中的type参数?给更新程序的第二个参数是props。
标签: javascript reactjs react-native ecmascript-6