我正在尝试检查条件,并根据该条件将页面重定向到其他路径。我正在使用以下逻辑:
if (redirectUrl) {
useEffect(() => {
window.location.replace(redirectUrl!);
});
} else {
return <Redirect to={'/page'} />;
}
但是这种逻辑无法正常工作。如果我的URL是
www.myUrl.com
且重定向是www.redirectUrl.com
,则此逻辑会将我重定向到www.myUrl.com/www.redirectUrl.com
...它不会删除第一个URL。我该如何正确使用呢?
谢谢
最佳答案
您不应该在条件内部使用钩子,因为这违反了钩子规则,因此您可能会在组件内部以过时状态结束,请阅读此https://reactjs.org/docs/hooks-rules.html
您的代码应该像
useEffect(() => {
if (redirectUrl) {
window.location.replace(redirectUrl!);
} else {
<Redirect to={'/page'} />;
}
});
也为redirectUrl使用包括协议的完整URL