在React中测试状态对象

时间:2018-07-16 19:00:36

标签: javascript reactjs state

我见过this question,这有助于我理解如何正确设置状态,但是我正在为基于变量的测试状态的正确格式而苦苦挣扎。

例如,我有一个setState变量的newItem函数调用:

addToSandwich(newItem){

    setState(prevState => {
        return { sandwichItems: {...prevState.sandwichItems, [newItem]: true} };
    });

}

假设当前状态如下:

sandwichItems: {
    meat: true,
    cheese: true,
    tomato: false
}

使用var newItem = "tomato";

这将导致以下结果:

sandwichItems: {
    meat: true,
    cheese: true,
    tomato: true
}

但是我无法使用以下命令测试newItem:

var newItem = "tomato";

if (this.state.sandwichItems.newItem === true) {//whatever}

我将不得不做:

if (this.state.sandwichItems.tomato === true) {//whatever}

如何根据变量的值测试状态值?

1 个答案:

答案 0 :(得分:1)

这就是您想要的:

var newItem = "tomato";
if(this.state.sandwichItems[newItem] === true { }