是否使用if语句重定向用户离开,如果页面不存在在React的良好实践?



基本上,我正在尝试根据页面是否存在来路由用户。所以我试着用if语句来检查道具profileExists。如果这是真的,它将停留在同一页上。否则,它会将用户重新路由到另一条路由,即/homepage路由。我想知道这是一个好的事情在React或不做。请参阅下面的代码:

renderWithRoot(component) {
const { classes, profileExists, history } = this.props;
if (profileExists === false) {
history.push('/homepage');
}
return (
<div className={classes.root}>
{component}
</div>
);
}

还可以,但不完全是您使用它的方式。你应该在useEffect钩子

中发出重定向作为命令式导航。
useEffect(() => {
if (!profileExists) {
history.replace('/homepage');
}
}, [profileExists]);
...
return (
<div className={classes.root}>
{component}
</div>
);

或者通过呈现Redirect组件作为声明性导航发出重定向。

if (!profileExists) {
return <Redirect to='/homepage' />;
}
return (
<div className={classes.root}>
{component}
</div>
);

相关内容

  • 没有找到相关文章