我是 ReactJS 的新手。在页面初始加载时,我想检查是否state
为空,那么我想重定向到另一个login Page
这是组件代码:
export default function Addblousesalwar() {
const navigate = useNavigate();
const { state } = useLocation();
console.log(state) //null
if(state === null || state === undefined){
navigate("/login")
}
但它显示错误:
You should call navigate() in a React.useEffect(), not when your component is first rendered.
我也尝试通过 useEffect 。但 useEffect 没有被执行。
useEffect(() => {
if(state === null || state === undefined){
navigate("/")
}
}, []);
useEffect(() => {
if(state === null || state === undefined){
navigate("/")
}
}, []);
我也尝试过这个
useEffect(() => {
if(state === null || state === undefined){
navigate("/")
}
}, [state]);
这个useeffect也没有触发
请帮我提供一些解决方案
您应该在所有异步函数之后使用 useEffect,这里是示例:
const userInfo = localStorage.getItem('user-info');
async function signUp()
{
let item = {name, password, email};
console.warn(item);
let result = await fetch("http://127.0.0.1:8000/api/register",{
method: 'POST',
body: JSON.stringify(item),
headers: {
"content-type": 'application/json',
"Accept": 'application/json'}
})
result = await result.json();
console.warn('result', result);
localStorage.setItem("user-info",JSON.stringify(result));
navigate("/add");
}
useEffect(() => {
if (userInfo){
navigate("/add")
}
},[])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)