Javascript 在React中测试状态对象

Javascript 在React中测试状态对象,javascript,reactjs,state,Javascript,Reactjs,State,我已经看到了,这有助于我理解如何正确设置状态,但我正在努力使用基于变量的测试状态的正确格式 例如,我有一个带有newItem变量的setState函数调用: addToSandwich(newItem){ setState(prevState => { return { sandwichItems: {...prevState.sandwichItems, [newItem]: true} }; }); } 假设当前状态如下所示: sandwichIt

我已经看到了,这有助于我理解如何正确设置状态,但我正在努力使用基于变量的测试状态的正确格式

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

addToSandwich(newItem){

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

}
假设当前状态如下所示:

sandwichItems: {
    meat: true,
    cheese: true,
    tomato: false
}
使用
var newItem=“番茄”

这将导致:

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}

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

这就是您想要的:

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

这成功了,谢谢!在接受这个问题之前,我会先把这个问题留待一会儿,但这就是我一直在寻找的答案。只是碰巧,你知道深入到另一个对象的语法吗?好像西红柿也是一样?是不是(this.state.sandwichItems[newItem][value])?@Jaich看起来不错。但是您需要向我展示一个对象的示例。如果您想从浏览器查看状态,我建议您查看@JonWarren我目前使用的React DevTools,它是我的web开发项目中最有用的工具之一