刷新反应路由器,组件生命周期

时间:2017-02-17 01:22:48

标签: reactjs redux react-router

我有一个看起来像这样的组件:

things/:id

此组件在componentDidUpdate时呈现。根据{{​​3}},在更改道具时调用loadThingThenFrames,例如从事物列表中选择事物时。我想在页面刷新时ThingView,或者有人离开ThingView,然后返回thing并使用相同的props.id。目前,由于前一个props.id与当前componentDidUpdate相同,如果我删除此项检查,那么就不会发生这种情况,那么道具的无限循环会得到更新> df<- as.data.frame(matrix(rnorm(15), 3)) > df V1 V2 V3 V4 V5 1 0.8757347 1.5984067 1.0295143 0.08161545 1.6208651 2 -0.4039117 -0.9497641 -0.1747716 0.01544082 0.4639266 3 -0.9055205 -0.9686378 0.9451551 -0.05030505 -1.4510613 1}}被召唤。

1 个答案:

答案 0 :(得分:1)

它认为问题是没有为初始渲染调用componentDidUpdate(当组件被挂载时) - 只有在重新渲染组件时才会调用它。因此,在页面刷新之后或者当您回到组件路径时不会调用它,因为组件在这种情况下被挂载(而不是重新呈现) - 创建组件的新实例并将其插入到DOM中。

因此,除了在更新组件时调用loadThingThenFrames,还应在安装组件时调用loadThingThenFrames - 在组件构造函数或安装组件时调用的其他生命周期方法(componentWillMountcomponentDidMount)。有关ccomponents生命周期的详细信息,请查看React docs