我一直在试图找出一段时间,并没有遇到正确的答案。prevstate in`this.setState` - 一个副本或引用?
在以下代码:
this.setState(prevState => counter: prevState.counter + 1);
是prevState
到当前状态的基准?或者它是它的副本?突变还是应该避免突变是好的?
我一直在试图找出一段时间,并没有遇到正确的答案。prevstate in`this.setState` - 一个副本或引用?
在以下代码:
this.setState(prevState => counter: prevState.counter + 1);
是prevState
到当前状态的基准?或者它是它的副本?突变还是应该避免突变是好的?
从文件...
prevState是到以前的状态的参考。它不应该是 直接变异。相反,应该通过建立基于来自prevState和道具的输入的新对象来表示改变。
https://facebook.github.io/react/docs/react-component.html
因此,要回答你的问题,prevState是国家最近发生的突变之前。
很好,谢谢你的回答。我正在查看文档中的状态和生命周期页面,而不是反应组件页面。 d'oh – JSilv
不用担心,祝您的反应良好。 –
你可以很容易地检查它:console.log(prevState === this.state)。如果这是真的,那么它是相同的参考。 –
这在[DOC](https://facebook.github.io/react/docs/react-component.html#setstate)中得到了很好的解释 –