就是想实现一个保存登录状态的变量,登录成功后为 true
然后其它接口请求的时候如果登录失效了就 false
, 我看了下 useContext
是用于组件之间的通信,那请求的话只是一个普通方法并不是一个组件,所以请教下
就是想实现一个保存登录状态的变量,登录成功后为 true
然后其它接口请求的时候如果登录失效了就 false
, 我看了下 useContext
是用于组件之间的通信,那请求的话只是一个普通方法并不是一个组件,所以请教下
是的,React 有全局的状态变量。您可以使用 useEffect
钩子来在组件加载时初始化这个变量,并在登录状态发生变化时更新它。您可以在组件外部定义一个函数来管理这个状态变量,然后在组件内部调用该函数来更新它。例如:
import React, { useEffect, useState } from 'react';
const GlobalState = {
isLoggedIn: false,
};
const GlobalStateProvider = () => {
const [isLoggedIn, setIsLoggedIn] = useState(false);
const updateGlobalState = () => {
if (/* login status changed */) {
setIsLoggedIn(/* update login status to true or false */);
}
};
useEffect(() => {
updateGlobalState();
}, []);
return (
<div>
{/* Render your components */}
</div>
);
};
在上面的代码中,GlobalState
是一个全局状态变量,isLoggedIn
是它的一个状态属性。updateGlobalState
函数会在登录状态发生变化时被调用,并更新 isLoggedIn
的值。useEffect
钩子会在组件加载时执行 updateGlobalState
函数,从而初始化全局状态变量。
1.可以列用发布订阅 在 userContext中订阅用户信息 在userContext中进行upDataUser
2.直接把 set方法挂在window上 直接在方法里 window.upDataUser({user :'' , id : ''})
1 回答1.8k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
4 回答1.3k 阅读
1 回答1.7k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.6k 阅读✓ 已解决
2 回答878 阅读✓ 已解决
可以考虑用Redux或者Mobx作为全局状态管理呀