返回的不可变对象是正确的,但是this.setState({...})
似乎没有设置它。
我尝试了各种设置状态的方法,但似乎都失败了。
state = {
onboarding3: fromJS({
selection: {
neverBeen: false,
noConvert: false,
both: false
},
noConvertOptions: {
dynamicCreative: false,
noPurchase: false,
abandoned: false
},
bothOptions: {
dynamicCreative: false,
noPurchase1: false,
noPurchase2: false
}
})
};
updateToggle = (field, option) => {
return () => {
const currentValue = this.state.onboarding3.getIn([field, option]);
const onboarding3 = this.state.onboarding3.setIn([field, option], !currentValue);
this.setState({ onboarding3 });
};
};
<Component
roundedSwitchFunc={this.updateToggle("noConvertOptions", "dynamicCreative")}
defaultChecked={onboarding3.getIn(["noConvertOptions", "dynamicCreative"])}
/>
答案 0 :(得分:0)
这是事件冒泡和数据不同步的问题。这个组件的目的是让我的州模仿商店,但是由于每个组件都有自己的“商店”,因此无法准确地模仿Redux。