我见过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}
如何根据变量的值测试状态值?
答案 0 :(得分:1)
这就是您想要的:
var newItem = "tomato";
if(this.state.sandwichItems[newItem] === true { }