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开发项目中最有用的工具之一