使用redux-persist解决redux数据刷新丢失问题

2023-11-09

  • 在React项目实际开发中,我们常常会对一些数据进行存储缓存中,防止用户刷新浏览器,数据丢失问题,比如token,用户信息之类的。之前都是手写一遍localStorage和sessionStorage储存,接来下,我们通过一个插件redux-persist配置项,来存储数据。
存储数据配置
  • 首先安装 redux-persist插件
cnpm install redux-persist
  • store文件配置
  • 本地存储 import storage from 'redux-persist/lib/storage
  • 会话存储 import storageSession from 'redux-persist/lib/storage/session
  • 其中blacklist设置哪些数据不需要存储,因为在项目中,有些数据是没有必要存储的
import { createStore,combineReducers,applyMiddleware,compose } from 'redux'

import { persistStore, persistReducer } from 'redux-persist'
import storage from "redux-persist/lib/storage"; //本地存储

import language from './language/languageReducer'

// 创建reducer对象
const allReducer = {
    language
}
// 缓存数据配置
const persistConfig = {
    key: "root",
    storage,
    whitelist: ["language"], //需要缓存的数据
    blacklist:[], //不需要缓存的数据
}
// 合并
const rootReducer  = combineReducers(allReducer)
const persistedReducer = persistReducer(persistConfig, rootReducer)
// 调试redux
const store = createStore(persistedReducer,compose(window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()))

export const persistor = persistStore(store)
export default store
使用PersistGate包装您的根组件
  • 引入插件和store配置文件
import store, {persistor} from './redux/store'

import { PersistGate } from "redux-persist/integration/react";
  • 配置
ReactDOM.render(
  <React.StrictMode>
    <Provider store={store}>
      <PersistGate persistor={persistor}>
        <App /> 
      </PersistGate>
    </Provider>
  </React.StrictMode>,
  document.getElementById('root')
);
  • 以上就是在redux解决数据丢失问题
  • 如果想看react中英文切换,移步到 点击跳转: link.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用redux-persist解决redux数据刷新丢失问题 的相关文章

  • 如何访问 React Redux 中的存储状态?

    我只是在制作一个简单的应用程序来学习异步与 redux 我已经让一切正常工作 现在我只想在网页上显示实际状态 现在 我如何在渲染方法中实际访问商店的状态 这是我的代码 所有内容都在一页中 因为我刚刚学习 const initialState
  • 关于如何制作影响 Angular 中所有组件的主题机制的指南?

    问题 我需要有关如何在 Angular 中编写机制以在我的应用程序中全局设置组件的 外观和感觉 的指导 请注意 我正在努力学习 ngrx 平台 https github com ngrx platform我认为这将是一个有趣的设计约束 然而
  • 类型错误:中间件不是函数

    我正在尝试在我的reactjs 应用程序中应用redux 由于这些错误 我无法继续 我确信我已经安装了我需要的所有依赖项 这是我的 package json 的相关部分 dependencies react redux 5 0 6 redu
  • 从redux中的reducer获取ID

    我是个新手 正在尝试使用 React 和 Redux 构建一个简单的书签应用程序 我无法解决这个问题 用户可以创建一个书签并将其添加到多个文件夹 所以我派了一个addMark bookmark 行动 然后addMark folder or
  • 使用反应选择我遇到了下一个问题:无法读取未定义的属性“值”

    我在用着react select 当我从 select 中选择一个确定值时 我遇到了下一个问题 类型错误 无法读取未定义的属性 值 另外 从reducer获取的值todoList没有显示 我看不到它们 这是我的代码 import Selec
  • 如何使用 onAuthStateChanged 将 Firebase 身份验证与 Redux Toolkit 结合使用?

    我正在尝试通过 Redux Toolkit 实现 Firebase 身份验证 但我认为由于缺乏知识我错过了一些东西 My monitorAuthChange回报undefined 我有两个单独的文件 第一个是 firebase 函数列表 第
  • 使用 Jest 和 Redux 的异步组件快照

    我发现 Jest 在测试我的 Redux React 应用程序时非常有用 然而 有很多关于如何测试异步操作创建器的示例 但我无法真正弄清楚如何对异步组件进行快照 我想做的是类似的事情Facebook 自己的教程中的悬停链接示例 https
  • 将 props 传递给 React-Redux 容器组件

    我有一个在 React Native Navigator 组件中创建的 React Redux 容器组件 我希望能够将导航器作为道具传递给该容器组件 以便在其演示组件内按下按钮后 它可以将对象推送到导航器堆栈上 我想做到这一点 而不需要手动
  • 键入错误“模块的默认导出具有或正在使用私有名称” - 从 typescript v1.8 切换到 2

    我已将我的 ionic 应用程序从 beta 11 更新到 rc0 所以这意味着我已经从 Angular2 RC4 切换到 Angular2 stable 从 TypeScript 1 8 切换到 2 我有一个 redux 架构并且正在使用
  • Ngxs - 调用 Angular 服务:好的做法吗?

    当我使用ngxs我的应用程序应该做什么 我的组件调用一个服务 并且该服务调度一个操作 结果作为有效负载 我的组件调度一个动作 我的 状态调用服务 我的观点是 Dispatched Action 本身应该是不可变的 并且不用于返回结果 相反
  • 从 firebase 渲染 FlatList 中的数据

    我正在使用 React Native 0 49 我从 firebase 中获取了数据 用户列表users 这个列表中的每一项都是这样设置的firebase database ref users userId set userInfo 用户
  • 为什么我的 redux 状态没有更新

    状态未更新 当调度操作时 状态应更新为 isAuthenticated 为 true 但状态未更新 redux 返回初始状态而不是更新后的状态 export function setCurrentUser user console log
  • 在 Redux 中访问中间件中的状态

    我的 React Redux 应用程序中有一个中间件 如下所示 export const myMiddleware store gt next gt async action gt switch action type case types
  • 如何在 Redux 减速器中处理树形实体?

    我有点陷入思考如何实现一个减速器 其中它的实体可以有相同类型的子级 让我们以 Reddit 评论为例 每个评论都可以有子评论 子评论本身也可以有评论等 为了简单起见 评论是类型的记录 id pageId value children wit
  • redux 减速器类型“从不”

    我想使用 useSelector 来选择 rootStore 的正确状态 但无法正确获取状态 原因是主题缩减器根状态给我类型never export type RootState ReturnType
  • 使用 redux-thunk 取消之前的异步操作

    我正在使用 redux thunk 中间件构建一个 React Redux 应用程序来创建和处理 Ajax 请求 我有一个经常触发的特定 thunk 我想在触发新请求之前取消任何先前启动的 Ajax 请求 这可能吗 一种方法是通过为这些请求
  • Redux 中的排队操作

    我目前遇到的情况是我需要连续运行 Redux Actions 我看过各种中间件 比如 redux promise 看起来不错如果您知道触发根操作 由于缺乏更好的术语 时的连续操作是什么 本质上 我想维护一个可以随时添加的操作队列 每个对象在
  • 如何将 setTimeout 添加到使用 redux 的 fetch Promise 中?

    经过一定的秒数后 如果获取承诺尚未得到解决 我想向用户显示超时错误 我在这里看到了一些添加 setTimeout 来获取的很好的例子 https github com github fetch issues 175 https github
  • useEffect 中的 setTimeout 函数输出缓存的状态值

    这很简单 我正在使用 Redux 来管理我的状态 我有一个setTimeout函数在一个useEffect功能 The setTimeout超时值为50000ms 我想要 SetTimeout 处理程序做什么 After 50000ms t
  • 以编程方式更改 Redux-Form 字段值

    当我使用redux formv7 我发现没有办法设置字段值 现在在我的form 我有两个select成分 当第一个时 第二个的值就会很清楚select元件值改变 在类渲染中 div div site div div div div

随机推荐

  • LLVM系列第一章:编译LLVM源码

    系列文章目录 LLVM系列第一章 编译LLVM源码 LLVM系列第二章 模块Module LLVM系列第三章 函数Function LLVM系列第四章 逻辑代码块Block LLVM系列第五章 全局变量Global Variable LLV
  • [CSDN] 批量导出博客markdown文件

    需求 为了备份或者迁移博客 需要导出博客的md格式文件 除了 爬虫 自带导出功能 编辑模式 ctrl c ctrl v 之外还有一种十分方便的方法 一行命令导出法 方法 进入 404页面 https blog console api csd
  • 自旋锁与读写锁

    1 读写锁 读写锁与互斥量类似 但是读写锁允许更高的并行性 互斥量要么是锁住多个要么是未锁住状态 而且一次只有一个线程可以对其加锁 读写锁可以有三种状态 读模式写加锁状态 写模式写加锁状态 不加锁状态 一次只有一个线程可以占有写模式下的读写
  • 四家中国企业上榜、AI 开发工具崛起,CB Insights 2022 年度 AI 100 全球榜单发布!...

    整理 郑丽媛 出品 CSDN ID CSDNnews 近日 全球知名市场数据分析机构 CB Insights 最新公布了 2022 年度 AI 100 榜单 自 2017 年起 CB Insights 每年都会发布 AI 100 榜单 在全
  • yum安装mysql 8.0

    一 安装mysql 8 0 yum源 cd etc yum repos d curl https repo mysql com mysql80 community release el7 3 noarch rpm gt centos7 my
  • 黄淮学院CSDN高校俱乐部李神龙主席发来的新年礼物感恩帖

    下午刚收到俱乐部总部给我发的礼物 心里甜甜的 先展示一下 嘿嘿 表示下半学年一定要好好工作 要不就对不起天山经理 姚希姐 付菁姐还有仲伟哥给的评语了 新的一年祝天山经理升官发财 姚希付菁姐美貌如花 仲伟哥英明神武 CSDN高校俱乐部一家人亲
  • Spring Cloud之Eureka集群与安全认证

    文章目录 前言 一 Eureka集群 1 修改配置文件为application replica1 properties 2 新增配置文件application replica2 properties 3 分别使用两个配置文件启动同一eure
  • 基本数据类型与引用数据类型的区别

    一 数据类型 java中的数据类型分为两大类 基本数据类型与引用数据类型 1 基本数据类型 基本数据类型只有8种 可按照如下分类 整数类型 long int short byte 浮点类型 float double 字符类型 char 因为
  • 拳王公社:最新虚拟资源项目赚钱成交系统,1.2W字干货大揭秘!

    小白如何快速利用虚拟资源赚到钱 本文篇幅较长 要赚钱 请耐心读完 一 选择好项目的5大要素 现在是互联网时代 信息差就是利润差 网络小白 新手找副业难 没方向 找不到好项目成为了问题 小白找副业或兼职最担心的就是承担大量资金投入 承担不明确
  • A - Odd Palindrome (回文串)

    A Odd Palindromehttps vjudge csgrandeur cn problem Gym 101652N include
  • Dom详细讲解

    1 Dom的基本介绍 1 1 什么是DOM 文档对象模型 英文全称为Document Object Model 它提供了对文档的结构化的表述 并定义了一种方式可以使从程序中对该结构进行访问 从而改变文档的结构 样式和内容 D Documen
  • pytorch环境搭建,pytorch超详细最新安装教程(一步到位)

    PyTorch是深度学习的主流框架之一 新手入门相对容易 PyTorch是一个开源的Python机器学习库 其前身是2002年诞生于纽约大学 的Torch 它是美国Facebook公司使用python语言开发的一个深度学习的框架 2017年
  • [转]element中this.$message 失效问题解决方法(使用全局调用,重新定义this)(转载请删除括号里的内容)

    这两天写项目的时候发现了这个问题 问题再现 在Model框中操作数据 在使用this message进行消息提示时发现 提示框失效 本人解决方案 具体原因我没有找出来 写这个出来也是为了让大佬指点指点 保存修改数据 handleSaveMu
  • C语言-蓝桥杯-路径

    题目 小蓝学习了最短路径之后特别高兴 他定义了一个特别的图 希望找到图 中的最短路径 小蓝的图由 2021 个结点组成 依次编号 1 至 2021 对于两个不同的结点 a b 如果 a 和 b 的差的绝对值大于 21 则两个结点 之间没有边
  • javascript控制浏览器弹窗和输出内容

    alert 这是我制作的第一行代码 这行是用于控制浏览器弹出一个
  • React使用公共文件夹public

    两者区别 其实放在两个文件夹区别就在于是否会被webpack所处理 如果您将文件放入该public文件夹 webpack 将不会处理它 在你打包的时候 会将public文件夹直接复制一份到你构建出来的文件夹中 而src assets目录的文
  • Android 三大图片加载框架比较

    1 哪三大图片加载框架 1 Picasso 2 Glide 3 Fresco 2 介绍 Picasso 和Square的网络库一起能发挥最大作用 因为Picasso可以选择将网络请求的缓存部分交给了okhttp实现 Glide 模仿了Pic
  • unity ugui text随文字增多自动调节宽度或者高度组件(备忘)

    Content Size Fitter
  • Shell编程时常用的系统文件

    10 1 Linux系统目录结构 根目录 所有文件的第一级目录 home 普通用户家目录 root 超级用户家目录 usr 用户命令 应用程序等目录 var 应用数据 日志等目录 lib 库文件和内核模块目录 etc 系统和软件配置文件 b
  • 使用redux-persist解决redux数据刷新丢失问题

    在React项目实际开发中 我们常常会对一些数据进行存储缓存中 防止用户刷新浏览器 数据丢失问题 比如token 用户信息之类的 之前都是手写一遍localStorage和sessionStorage储存 接来下 我们通过一个插件redux