Reactjs 关于this.setState的回调函数,此函数的未来状态

Reactjs 关于this.setState的回调函数,此函数的未来状态,reactjs,Reactjs,我不知道如何处理关键字,所以我无法检查重复的问题 昨天我打开react.js的内部,查看了ReactComponent.prototype.setState。在函数的顶部,描述中有以下语句 当一个函数被提供给setState时,它将在将来的某个时候被调用(不同步)。将使用最新的组件参数(状态、道具、上下文)调用它。这些值可能与此不同。*因为您的函数可能在receiveProps之后调用,但在shouldComponentUpdate之前调用,并且此新状态、props和上下文尚未分配给此函数 整个

我不知道如何处理关键字,所以我无法检查重复的问题

昨天我打开react.js的内部,查看了
ReactComponent.prototype.setState
。在函数的顶部,描述中有以下语句

当一个函数被提供给setState时,它将在将来的某个时候被调用(不同步)。将使用最新的组件参数(状态、道具、上下文)调用它。这些值可能与此不同。*因为您的函数可能在receiveProps之后调用,但在shouldComponentUpdate之前调用,并且此新状态、props和上下文尚未分配给此函数

整个上下文似乎是,当我编写回调函数时,
this.*
可能与我在未来某个时候的预期不同,并且我没有特别想到会发生什么


如果可能的话,如果您能给我一个简单的例子,我将不胜感激。

这意味着当您在setState回调
state
中时,
props
context
不能保证与您在
this.state
this.props
this.context
中找到的对象相同。例如

this.setState((state, props, context) => {
  this.state === state // false
  this.props === props // false
  this.context === context // false
})

换句话说,不要接触setState回调作为参数传递给您的对象之外的任何对象。

您可以查看一下,谢谢!我会看的。谢谢,这就是我想要的!