我有一个看起来像这样的组件:
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}}被召唤。
答案 0 :(得分:1)
它认为问题是没有为初始渲染调用componentDidUpdate
(当组件被挂载时) - 只有在重新渲染组件时才会调用它。因此,在页面刷新之后或者当您回到组件路径时不会调用它,因为组件在这种情况下被挂载(而不是重新呈现) - 创建组件的新实例并将其插入到DOM中。
因此,除了在更新组件时调用loadThingThenFrames
,还应在安装组件时调用loadThingThenFrames
- 在组件构造函数或安装组件时调用的其他生命周期方法(componentWillMount
或componentDidMount
)。有关ccomponents生命周期的详细信息,请查看React docs。