导航时,auth route componentWillMount还是DidMount没有触发?

时间:2018-01-27 09:41:25

标签: javascript reactjs

我有一个组件作为'中间件',它检查条件并触发一些功能,它在用户进入页面时起作用(我的意思是初始加载)或用户刷新页面。但是,如果用户通过componentWillMount输入路径,componentDidMount<Link>将不会触发?

https://codesandbox.io/s/r433m6kvvp

1 个答案:

答案 0 :(得分:0)

由于componentWillMountcomponentDidMountmounting methods,而不是updating methods,因此不会在组件重新呈现时调用它们。

<强>解决方案:

您需要进行一项更改,将BrowserRouter放在此处:

render(<BrowserRouter><App /></BrowserRouter>, document.getElementById('root'));

在Auth组件中使用componentWillReceiveProps,初始渲染componentDidMount将被调用,并且对于每个路由更改componentWillReceiveProps将被调用,您可以在两个位置执行该函数。 / p>

<强> Working Code.