2017-08-10 96 views
4

我一直在试图找出一段时间,并没有遇到正确的答案。prevstate in`this.setState` - 一个副本或引用?

在以下代码:

this.setState(prevState => counter: prevState.counter + 1); 

prevState到当前状态的基准?或者它是它的副本?突变还是应该避免突变是好的?

+2

你可以很容易地检查它:console.log(prevState === this.state)。如果这是真的,那么它是相同的参考。 –

+0

这在[DOC](https://facebook.github.io/react/docs/react-component.html#setstate)中得到了很好的解释 –

回答

6

从文件...

prevState是到以前的状态的参考。它不应该是 直接变异。相反,应该通过建立基于来自prevState和道具的输入的新对象来表示改变。

https://facebook.github.io/react/docs/react-component.html

因此,要回答你的问题,prevState是国家最近发生的突变之前。

+1

很好,谢谢你的回答。我正在查看文档中的状态和生命周期页面,而不是反应组件页面。 d'oh – JSilv

+0

不用担心,祝您的反应良好。 –

相关问题