我可以做这样的事情:

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
});

07-24 09:38
查看更多