基本上,我正在尝试根据页面是否存在来路由用户。所以我试着用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>
);