我可以做这样的事情:
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
});