在我的组件中,我想检查用户是否已登录,如果没有,请重定向到登录页面。当前,我在componentWillMount中进行检查并重定向。
public componentWillMount() {
if(this.props.master === null) {
this.props.history.push('./login');
}
}
尽管重定向确实发生了,但是render()和componentDidMount()都仍在运行,这使我的代码崩溃了,因为在那里我认为master不是null。
答案 0 :(得分:1)
考虑使用这种机制:
When user is not logged in redirect to login. Reactjs
要将用户重定向到路由器上的登录页面,而不是受限组件。
请注意componentWillMount
,因为它将在以后的版本中弃用。
https://reactjs.org/docs/react-component.html#unsafe_componentwillmount
答案 1 :(得分:0)
尝试:
如果
shouldComponentUpdate()
返回false,则将不会调用componentWillUpdate()
,render()
和componentDidUpdate()
shouldComponentUpdate() {
if (this.props.master == null) return false
}
原始答案来自:Stop rendering of a component after componentDidMount()