【问题标题】:Clear useContext state on logout注销时清除 useContext 状态
【发布时间】:2021-11-05 19:43:10
【问题描述】:

每当我注销我的应用程序(使用 firebase 身份验证)然后以单独的用户身份重新登录时,我都会注意到从我注销的初始用户那里保留了一些状态(这不应该发生)。

我猜这是因为我没有清除 useContext 中的状态,但我想知道最好的方法是什么?

我正在查看this answer,但我设置了不同的上下文 API,不知道如何将它应用到我的案例中,这就是我的上下文文件的样子:

const AppContext = React.createContext();

const AppProvider = ({ children }) => {
  const [someState, setSomeState] = useState();

  return (
    <AppContext.Provider value={{someState, setSomeState}}>
      {children}
    </AppContext.Provider>
  );
};

export const useGlobalContext = () => {
  return useContext(AppContext);
};

export { AppContext, AppProvider };

【问题讨论】:

    标签: reactjs authentication react-context


    【解决方案1】:

    您可以使用 useEffect 实现清除 unMount 上的上下文。你应该可以添加这样的东西给你 useGlobalContext 钩子

    useEffect(
      () => (): void => clear my context logic here,
      []
    )
    

    【讨论】:

    • 我需要手动清除每个状态变量吗?有没有捷径可以做到这一点?
    猜你喜欢
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    • 2020-09-05
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    • 2020-12-08
    • 1970-01-01
    相关资源
    最近更新 更多