【问题标题】:Inserting values inside an array which is in an State - React在处于状态的数组中插入值 - React
【发布时间】:2019-03-30 21:49:24
【问题描述】:

我在一个状态内有一个数组,它是一个关联数组。我想在事件发生时将值插入到这个数组中。

我使用的状态声明。

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

应该将值插入状态内的数组的函数。

reader.onload = (e) => {

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

}

不知怎的,它不起作用^_^

【问题讨论】:

  • 您是否尝试过给出的答案?如果是,那么请投票并接受答案。谢谢

标签: arrays node.js reactjs


【解决方案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
        });
   }

【讨论】:

    【解决方案2】:

    您可以在设置状态时使用Destructuring_assignment

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

    【讨论】:

      猜你喜欢
      • 2020-10-21
      • 1970-01-01
      • 2020-01-27
      • 2023-03-14
      • 2020-07-06
      • 1970-01-01
      • 2017-02-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多