我可以做这样的事情吗:
var number = 0;
var values = ["my_component_state_0", "my_component_state_1"];
this.setState({
values[number]: evt.target.value
});
而不是写出:
this.setState({
my_component_state_0: evt.target.value
});
?
我需要遍历一些东西,像这样的东西会很有用。但这似乎太老套了,而且似乎也行不通——是吗? (或类似的东西)
最佳答案
选项 1:
var number = 0;
var values = ["my_component_state_0", "my_component_state_1"];
var newState = {};
newState[values[number]] = evt.target.value;
this.setState(newState);
选项 2: ECMAScript 2015 中的新符号(计算属性名称)- 但 IE 不支持此语法。
var number = 0;
var values = ["my_component_state_0", "my_component_state_1"];
this.setState({
[values[number]]: evt.target.value
});
关于javascript - 动态设置 JSON 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43128293/