繁体   English   中英

在 React 中使用异步等待进行 SessionStorage 调用

[英]Making SessionStorage calls using async await in React

我有一个具有以下代码的功能组件。

import { isUserAuthCheck } from "../../Utils/SessionStorage";

function DefaultPage({ history }) {
  useEffect(() => void (isUserAuthCheck ? history.push("/home") : null));

在我的 Utils/SessionStorage 中,我有以下内容

export const isUserAuthCheck =
  sessionStorage.getItem("isUserAuthenticated") === "true";
export const getIsUserAuthenticated = sessionStorage.getItem(
  "isUserAuthenticated"
);
export const setValueInSession = (key, value) =>
  sessionStorage.setItem(key, value);

export const setIsUserAuthenticated = str =>
  sessionStorage.setItem("isUserAuthenticated", str);

这里的问题是, isUserAuthCheck似乎不会在sessionStorage每次发生变化时更新。 我如何确保每次sessionStorage发生更改时都会更新它。

任何帮助表示赞赏。

因为它不是一个函数。 每次调用它时它都不会触发检查。 您必须使其成为再次运行检查的函数。

export const isUserAuthCheck = () =>
  sessionStorage.getItem("isUserAuthenticated") === "true";

或者您可以在每次为isUserAuthenticated设置值时更新它,但它是一个const因此您必须更改它。

编辑:

如果你想让它成为我提到的getter

在此处输入图片说明

还要避免使用"true"或任何类型的这些东西。 bool类型可用是有原因的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM