假设我有一个普通对象列表,this.state.list
然后可以用来呈现子级列表。那么将对象插入其中的正确方法是什么this.state.list
?
以下是我认为它将起作用的唯一方法,因为您不能this.state
像文档中提到的那样直接更改。
this._list.push(newObject):
this.setState({list: this._list});
这对我来说似乎很丑。有没有更好的办法?
改变React状态的首选方式是什么?
假设我有一个普通对象列表,this.state.list
然后可以用来呈现子级列表。那么将对象插入其中的正确方法是什么this.state.list
?
以下是我认为它将起作用的唯一方法,因为您不能this.state
像文档中提到的那样直接更改。
this._list.push(newObject):
this.setState({list: this._list});
这对我来说似乎很丑。有没有更好的办法?
第1124篇《改变React状态的首选方式是什么?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点
更新2016
使用ES6,您可以使用:
this.setState({ list: [...this.state.list, ...newObject] });
从react docs(https://facebook.github.io/react/docs/state-and-lifecycle.html#state-updates-may-be-asynchronous)中:
由于this.props和this.state可以异步更新,因此您不应依赖于它们的值来计算下一个状态。
因此,您应该这样做:
this.setState((prevState) => ({
contacts: prevState.contacts.concat([contact])
}));
相似问题
问题类别
setState()可以使用函数作为参数来调用:
或在ES5中: