总是在渲染之前调用componentWillRecieveProps还是以其他方式调用

时间:2019-01-09 10:15:03

标签: reactjs react-native redux

我试图从componentWillRecieveProps调度一个动作,然后调用reducer。组件中使用Reducers数据。 我收到变量未定义的错误。 我认为渲染是在执行componentWillRecieveProps之前加载的。

所以我想问一下是否首先加载渲染或componentWillRecieveProps。

2 个答案:

答案 0 :(得分:2)

componentWillReceivePropsrender之前被调用。

下面是一个图表,说明何时调用生命周期(直到React 16.3):

Legacy React lifecycle diagram * “初始化/设置道具和状态”为 constructor

..

新生命周期

值得注意的是,自从React componentWillReceiveProps起,16.3considered legacy and should be avoided in 'new' code。旧版生命周期将从React 17开始删除。

以下是每个React版本在什么时候使用生命周期的动态图:http://projects.wojtekmaj.pl/react-lifecycle-methods-diagram/

您可以阅读有关组件生命周期here的更多信息。

答案 1 :(得分:0)

答案是

注意 componentWillReceiveProps React 16.3

中的 getDerivedStateFromProps

请检查:Replacing ‘componentWillReceiveProps’ with ‘getDerivedStateFromProps’

此外,请查看组件创建生命周期组件更新生命周期 以及超级重要不重要

创造生命周期挂钩:

enter image description here

更新生命周期挂钩:

enter image description here