当前位置: 首页 > article >正文

VUE3 pinia的对象莫名其妙被赋值成其他对象

我写项目时发现,我明明把这个属性赋值成数组了,但是一启动项目,他就变成了对象了,还是个请求失败的返回对象,很是莫名其妙

后来一步一步的删除代码,看看是哪里影响到了,直到我删除了pinia的持久化配置那段代码,嘿,好使了,变成数组了

后来发现,我之前把这个属性赋值成对象了,然后给持久化存储了,这导致我一启动项目,就会读取本地存储,然后赋值给这个属性,覆盖了原来的数组,解决办法就是清理缓存,

很好,找到问题了!状态管理配置使用了 localStorage 来持久化状态,并且启用了 persist 功能。这种情况下,应用的数据会被保存在本地存储中,可能导致某些信息或请求被缓存,或者在浏览器刷新后被重新加载。

解决思路:

  1. 启用 localStorage 持久化

    • 在配置中指定了 localStorage,意味着状态会在浏览器关闭后继续保留。可以确认这个存储是否正是你想要持久化的,并且在调试时是否有未正确清理的旧数据。
  2. 调试本地存储

    • 打开浏览器的开发者工具,切换到 "Application" 标签页(在 Chrome 中),然后查看 "Local Storage" 部分,确认是否有键值对和存储的数据符合预期。
    • 确保 key: "site" 对应的数据已经正确存储和读取。
  3. 清理存储内容

    • 如果你希望重置状态并清除本地存储,可以通过开发者工具清除 localStorage 中的数据,或在代码中显式清空:
       

      js复制代码

      localStorage.removeItem('site');
  4. 调试持久化策略

    • 如果是因为某些持久化数据导致的问题,你可以暂时禁用这个持久化策略,看看是否能解决问题。
    • 临时禁用配置:
       

      js复制代码

      persist: { enabled: false, strategies: [] }
  5. 检查状态更新机制

    • 确保状态的更新与本地存储之间是同步的。比如,在改变某个状态后,确保 localStorage 中的数据被及时更新。

这些步骤可以帮助你验证持久化策略是否按预期工作,也能避免因为持久化问题造成的错误。如果问题依然存在,可能需要进一步审查如何同步状态和持久化数据之间的交互。


http://www.kler.cn/a/532649.html

相关文章:

  • 请解释 Java 中的 IO 和 NIO 的区别,以及 NIO 如何实现多路复用?
  • 响应式编程_01基本概念:前世今生
  • 【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.25 视觉风暴:NumPy驱动数据可视化
  • 实战:如何快速让新网站被百度收录?
  • OpenGL学习笔记(六):Transformations 变换(变换矩阵、坐标系统、GLM库应用)
  • 深入解析 Redis AOF 机制:持久化原理、重写优化与 COW 影响
  • 基于Hadoop实现气象分析大屏可视化项目【源码+LW+PPT+解析】
  • 2025年时序数据库发展方向和前景分析
  • Java牙科诊所管理系统web医院病例挂号预约平台springboot/ssm代码编写
  • 刷题记录 动态规划-7: 63. 不同路径 II
  • 我主编的电子技术实验手册(24)——RL并联电路
  • Wide Deep 模型:记忆能力与泛化能力
  • NSSCTF Pwn [SWPUCTF 2022 新生赛]shellcode?题解
  • 网安学习xss和php反序列后的心得
  • minikube 的 Kubernetes 入门教程--Dify
  • [C++]C++中的常见异常和自定义异常
  • 半导体器件与物理篇6 MESFET
  • 解释 Java 中的垃圾回收机制,以及如何优化垃圾回收性能?
  • directx12 3d开发过程中出现的报错 一
  • Python 与 PostgreSQL 集成:深入 psycopg2 的应用与实践
  • 排序算法--计数排序
  • 【NLP 20、Encoding编码 和 Embedding嵌入】
  • 文字加持:让 OpenCV 轻松在图像中插上文字
  • 逻辑运算短路现象记录
  • PostCss
  • 关于deepseek的一些普遍误读