在处于状态的数组内插入值-React

时间:2018-10-26 07:25:35

标签: arrays node.js reactjs

我在状态为关联数组的内部有一个数组。我想在事件发生时将值插入此数组。

我使用的

状态声明。

state = {
    array: [{
        aaa: '',
        bbb: ''
    }]
};

应该在状态内部的数组中插入值的函数。

reader.onload = (e) => {

    var newArray = {
        aaa: new_aaa,
        bbb: new_bbb
    }
    this.setState({
        array: this.state.array.concat(newArray)
    });

}

以某种方式,它不起作用^ _ ^

2 个答案:

答案 0 :(得分:1)

尝试以下代码。在React中将值或对象推入数组的最佳方法是使用如下所示的先前状态

  reader.onload = (e) => {
       const obj = {
           aaa: new_aaa,
           bbb: new_bbb
        }
       this.setState( prevState => ({
              array: [...prevState.array, obj]
        }));
   }

   reader.onload = (e) => {
       const obj = {
           aaa: new_aaa,
           bbb: new_bbb
        }
       const array = [...this.state.array];
       array.push(obj);
       this.setState({
              array
        });
   }

答案 1 :(得分:1)

设置状态时可以使用Destructuring_assignment

state = {
  array: [{
    aaa: '',
    bbb: ''
  }]
};

reader.onload = (e) => {
  var newArray = {
    aaa: new_aaa,
    bbb: new_bbb
  }
  this.setState({
    array: [...this.state.array,newArray]
  });
}