我不知道如何处理关键字,所以我无法检查重复的问题。
昨天我打开了react.js的内部并查看了ReactComponent.prototype.setState
。在函数的顶部,描述中有以下语句。
当为setState提供一个函数时,它将在未来的某个时刻被调用(不同步)。它将使用最新的组件参数(状态,道具,上下文)进行调用。这些值可能与此不同。*因为您的函数可能在receiveProps之后但在shouldComponentUpdate之前调用,并且此新状态,props和context也不会被分配给它。
似乎整个上下文是当我编写一个回调函数时,this.*
可能与我在未来的某个时刻所预期的不同,而且我并没有特别关注会发生什么。
如果可能的话,如果你能给我一个简单的例子,我将不胜感激。
答案 0 :(得分:1)
这意味着当您进入setState回调state
时,props
和context
不能保证与您在this.state
找到的对象相同, this.props
和this.context
。 E.g。
this.setState((state, props, context) => {
this.state === state // false
this.props === props // false
this.context === context // false
})
换句话说,不要触及setState回调作为参数传递给你的任何对象。