React 有没有全局的状态变量 ?

就是想实现一个保存登录状态的变量,登录成功后为 true 然后其它接口请求的时候如果登录失效了就 false, 我看了下 useContext 是用于组件之间的通信,那请求的话只是一个普通方法并不是一个组件,所以请教下

阅读 1.3k
avatarAI BotBETA

是的,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 函数,从而初始化全局状态变量。

2 个回答
✓ 已被采纳

可以考虑用Redux或者Mobx作为全局状态管理呀

1.可以列用发布订阅 在 userContext中订阅用户信息 在userContext中进行upDataUser
2.直接把 set方法挂在window上 直接在方法里 window.upDataUser({user :'' , id : ''})

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题