如何更改内部状态的数组

时间:2019-11-20 19:03:12

标签: reactjs

我要通过推送新数据来更新results

数据是状态数组中的一个数组

 this.state = {

      comments: {
        results: []
      }
    }; 


 const new = {user : "users"};
 var comments= this.state.comments.results[0].data;
 var  comment= data.push(new);

2 个答案:

答案 0 :(得分:1)

这里的其他答案过于复杂。只需这样做:

this.state = {
  comments: {
    results: []
  }
}; 
const new = {user : "users"};
var comments = this.state.comments.results[0].data;
this.setState({
  comments: {
    ...this.state.comments,
    results: [
      ...this.state.comments.results,
      new
    ]
  }
});

...(扩展运算符)基本上只是获取对象/数组的所有属性/元素,并将它们转储到包含的对象/数组中。对于对象,如果扩展操作的键相同,则在扩展操作之后定义的任何其他属性都将覆盖扩展添加的属性。

答案 1 :(得分:0)

使用ReactJS状态和数组push()方法:

this.state = { result: [] };
var newStateArray = oldArray.push("new element");
this.setState({ result: newStateArray });