首页 > 解决方案 > 访问 localStorage 而不是 redux-store 的简单方法

问题描述

我刚刚将一些东西从我的商店导出到 localStorage(实际登录用户),因此用户应该能够打开第二个选项卡而无需再次登录。

为了将数据放入 localStorage,我使用了 Redux-Middleware(如果操作是登录,我将登录数据放入 localStorage)。

export const storageMiddleware = () => next => action => {
    console.log("Share Middleware...");
    console.log(action);
    switch(action.type){
      case 'LOGIN':
        localStorage.setItem('login-token', action.token);
        localStorage.setItem('login-token-expiration', action.expiration);
        break;
      default:
        break;
    }
    next(action);
  };

现在我的问题是:有没有一种简单的方法可以从 localStorage 获取数据?就像我调用 localStorage.getItem 而不是从 redux 存储返回值的读取中间件?

或者我是否必须更改使用登录数据访问 localStorage 而不是 redux 存储的每个组件。

现在我通过 mapStateToProps 方法访问令牌。

标签: javascriptreactjsreduxredux-middleware

解决方案


一种简单的方法是使用redux-persist,它将 redux 状态持久化到本地存储。还可以选择将特定减速器列入黑名单或白名单。通过使用这个包,我们不必在 redux 存储更新时手动处理本地存储


推荐阅读