我有一个组件会在某个时候调用browserHistory.push(url),在卸载该组件并安装下一个组件之后,我需要调用一个函数。目前,我正在使用setTimeout,因为似乎卸载组件会立即触发所有setTimeouts。有更好的方法吗?
答案 0 :(得分:3)
我不确定该函数的作用,但是最好是在下一个组件的componentDidMount
中调用它。
答案 1 :(得分:1)
如果进行条件渲染,则可以使用父组件来调用该函数。
您也可以像@Hasan所说的那样在下一个组件中使用componentDidMount
。
答案 2 :(得分:1)
您应该阅读react https://reactjs.org/docs/state-and-lifecycle.html
的生命周期文档供您使用的主要两种方法是componentDidMount。您可以在推送URL后呈现的下一个组件的此方法内调用函数。 显然,您的旧组件当时已卸载。
我现在只能建议这种方法。也许您的函数具有不同的依赖关系,这需要在旧组件本身中进行调用。