auth route componentWillMount 或 DidMount 在导航时没有触发?

IT技术 javascript reactjs
2022-08-01 00:49:39

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

https://codesandbox.io/s/r433m6kvvp

1个回答

因为componentWillMountcomponentDidMount挂载方法,而不是更新方法,所以它们不会在组件重新渲染时被调用。

解决方案:

你需要做一个改变,把BrowserRouter这里:

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

componentWillReceiveProps在 Auth 组件内部使用,因为初始渲染componentDidMount将被调用,并且每次路由更改componentWillReceiveProps都会被调用,您可以在这两个地方执行该函数。

工作代码。