我对ReactJS不熟悉。在页面初始加载时,我想要检查state
是否为空,如果是,则想要重定向到另一个登录页面
这是组件代码:
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也没有触发,请帮我提供一些解决方案
console.log(state)
来调试它是什么。 - Lin DuuseEffect
钩子保证在组件挂载时至少触发一次回调函数。导航有问题吗?检查效果回调中的state
值,看看条件为什么不满足。此外,Addblousesalwar
似乎不是 React 函数组件或自定义钩子,因此无法使用 React 钩子。 - Drew Reesenull
。 - rafekas