当我获取用户当前位置以查找该位置内的标记时,我正在启动操作。我得到数据,更新我的减速机。
然而,当我console.log(this.props)
中的componentWillReceiveProps
时,我仍然看到旧状态。如果我导航到另一条路线,然后回来,我可以从componentWillReceiveProps
的控制台日志中看到更新的道具。
更新:这是因为我对组件生命周期缺乏了解。看看下面的答案:)。
答案 0 :(得分:2)
这是预期的行为!在组件重新渲染之前调用该函数,以便您可以将旧状态与“当前”状态进行比较。
reducer更新状态树,告诉连接的组件重新渲染,然后this.props
应该显示组件的旧状态。
在console.log之后,组件将继续重新呈现,除非另有指示,这就是为什么当你向后导航时你会看到“新道具”。
通过componentWillReceiveProps传递的值是下一个道具。
您的生命周期代码基本上是这样说:
生命周期中的文档非常优秀,可以找到here
如果这没有帮助,那么组件失效的预期行为在哪里?