在React中动态更改状态值

时间:2018-07-26 16:40:48

标签: javascript reactjs

我有一个具有以下状态的React组件

.then(querySnapshot => {
        querySnapshot.forEach(documentSnapshot => {
                myData2 = myData.concat(receiptToDict(documentSnapshot));
                console.log("Found document at", myData2);

            });

});

我一次只希望一个选定状态为true,其余状态为false。为此,我在考虑以下逻辑

state = {
    SandD: true,
    Cancellation: false,
    Payments: false,
    EandR: false,
    InternationalShipping: false,
    ExpressDelievery: false
}

这里的值是状态的属性,需要具有一个值,其余的一切都应该为假。

例如,如果Payments为true,则其他所有条件都应为false。

有人可以帮助我解决以上问题,还是告诉我如何解决?

1 个答案:

答案 0 :(得分:2)

尝试一下:

currentActiveState = (value) => {
    const newState = {};
    Object.keys(this.state).forEach(key => {
        newState[key] = key === value; 
    })
    this.setState(newState);
}