pinia.js报patchToApply.hasOwnProperty is not a function

news2024/12/25 14:29:39

vue3 + ts + pinia.js 

先看报错=> patchToApply.hasOwnProperty is not a function

 错误信息:

pinia.js?v=91704efd:913 Uncaught (in promise) TypeError: patchToApply.hasOwnProperty is not a function
    at mergeReactiveObjects (pinia.js?v=91704efd:913:23)
    at mergeReactiveObjects (pinia.js?v=91704efd:918:21)
    at Proxy.$patch (pinia.js?v=91704efd:1032:7)
    at login.vue:180:7
    at async validateField (chunk-WIW5DRE4.js?v=91704efd:6092:11)

解决方案:

1 检查自己的代码,是否将“非响应式”数据赋值了。看我代码,我用的非响应式赋给了pinia中。

 let resUserInfo: any = await getUserInfo({}) // 获取用户信息
      setStorage('userRole', resUserInfo.user.roles[0].roleKey) // 设置本地token
      _userInfo.value = resUserInfo
      // 批量修改state
      store.$patch({
        userRole: resUserInfo.user.roles[0].roleKey, //角色
        userInfo: resUserInfo.user, //用户全部信息
        isAdmin: resUserInfo.user.admin, //是否是管理员
        userName: resUserInfo.user.userName, //用户名
      })

错误说明:

1 resUserInfo:是接口得到的用户信息,且是非响应式数据

let resUserInfo: any = await getUserInfo({}) // 获取用户信息

2 我将resUserInfo非向应式数据赋值到了pinia中。

store.$patch({

        userRole: resUserInfo.user.roles[0].roleKey, //角色

        ...

})

所以,导至了我开头出现的pinia错误。

更改成响应式数据即可,如下

//1 创建响应式变量
let _userInfo: any = ref({})


//2 使用
let resUserInfo: any = await getUserInfo({}) // 获取用户信息
setStorage('userRole', resUserInfo.user.roles[0].roleKey) // 设置本地token

_userInfo.value = resUserInfo //暂存用户信息

//响应式存储
store.$patch({
   userRole: _userInfo.value.user.roles[0].roleKey, //角色
   userInfo: _userInfo.value.user, //用户全部信息
   isAdmin: _userInfo.value.user.admin, //是否是管理员
   userName: _userInfo.value.user.userName, //用户名
})

搞定!!!

补充:

1 网上有说降级pinia.js的版本的,如下图,但我的还是错。还是要好好看看pinia的官网的。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1861741.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【学习】软件测试中常见的文档类型及其作用

在软件开发的生命周期中,软件测试是确保产品质量的关键步骤。为了系统地进行测试活动,并保证测试结果的有效性和可追溯性,产生了一系列标准化的测试文档。这些文档不仅为测试人员提供了执行指南,而且为项目管理者和利益相关者提供…

外部建筑3D 渲染的 5个关键角度,让你的效果图更具吸引力

对于建筑师和房地产专业人士来说,拥有大量高质量的项目图片至关重要,因为这可以吸引更多的潜在客户。。在展示您的3D效果图时,摄像机角度是一个关键因素。不同的视角影响细微的细节、当地环境和建筑亮点,最终影响项目的感知。那么…

网络编程篇: HTTPS协议

一.前置知识 早期很多公司刚起步的时候,使用的应用层协议都是HTTP,而HTTP无论是用GET方法还是POST方法传参,都是没有经过任何加密的,因此早期很多的信息都是可以通过抓包工具抓到的。 为了解决这个问题,于是出…

创建github个人博客

文章目录 安装Hexo安装git安装Node.js安装 Hexo 安装Hexo 参考官方文档:https://hexo.io/zh-cn/docs/ Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他标记语言)解析文章,在几秒内,即可利用靓丽的…

k8s volcano + deepspeed多机训练 + RDMA ROCE+ 用户权限安全方案【建议收藏】

目录 一、k8s环境配置 1.安装gpu-operator 2. 安装 rdma-shared-plugin 3. 安装volcano调度器 4. 创建research rbac认证 二、宿主机环境配置 1. 安装docker 客户端 2. 创建系统用户 3. 修改docker /etc/docker/daemon.json 文件如下 4. 修改系统 /etc/subuid 和subgi…

一文带你全面了解教师资格证

文章目录 前言一、什么是教师资格证?二、教师资格证分类三、教师资格证含金量四、就业方向五、如何获取教师资格证(一)取证流程(二)报名条件 & 考试科目(三)**题型分值**(四&…

自动驾驶ADAS

1 ToF摄像头分类 1.1 ToF原理 类似雷达测距,生成3D点云,或者叫3D贴图。ToF相机的分辨率一般在3万像素左右。ToF距离计算公式如图所示。 Figure 1-1 ToF距离计算公式 D:距离 c:光速 PHI:相位差 fmod:调制频率…

解决node: bad option: -V

出现这个问题是由于我们的不当操作造成的,v是需要小写的,看下图 node --version node -v

KubeSphere 在互联网电商行业的应用实践

来自社区用户(SRE运维手记)投稿 背景 在云原生的时代背景下,Kubernetes 已经成为了主流选择。然而,Kubernetes 的原生操作复杂性和学习曲线较高,往往让很多团队在使用和管理上遇到挑战。因此,市面上出现了…

轮播图的制作大全

例如该样式: 1.Vue的方法(可实现自动轮播和左右按钮和下方原点按钮轮播) <div id="app"><div class="a" ref="b" @mouseenter="MouseFun(c)" @mouseleave="MouseFun(d)">//1.图片显示盒子<div class=&qu…

F5《企业DNS建设白皮书》中的DNS解析服务器最佳实践

在这个数字化转型加速的时代&#xff0c;DNS&#xff08;域名系统&#xff09;的重要性不言而喻。每一次重大事件都凸显了DNS的可靠性和安全性问题。对企业而言&#xff0c;它不仅关系到业务连续性&#xff0c;更是提供永续数字服务的关键。本文根据F5公司发布的《企业DNS建设白…

一款强大的上位机模拟通讯工具----HslCommunicationDemo

目录 引言 工具概述 官网下载链接 安装步骤 使用教程 引言 在工业自动化和机器人控制领域&#xff0c;上位机模拟通讯工具是工程师和开发者日常工作中不可或缺的一部分。这些工具不仅能帮助我们验证设备间的通信状态&#xff0c;还能在设备调试和集成过程中提供极大的便利。…

Jenkins+K8s实现持续集成(三)

接上面一篇JenkinsK8s实现持续集成&#xff08;二&#xff09;&#xff0c;K8s创建秘钥。 看secret kubectl get secret 删除secret kubectl delete secret hello-secret -n train 创建secret kubectl create secret docker-registry hello-secret --docker-server镜像仓库…

【日常记录】【JS】优雅检测用户是否在指定元素的外部点击

文章目录 1、界面基本布局2、代码实现3、参考链接 1、界面基本布局 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">…

Qt案例-ApplicationExamples-Calqlatr

项目 一个Qt Quick应用程序设计的横向和纵向设备&#xff0c;使用自定义组件&#xff0c;响应式布局和JavaScript的应用程序逻辑。 项目路径&#xff1a; Qt\Examples\Qt-6.7.1\demos 环境&#xff1a;Qt6.7.1 MSVC 2019 64位 项目目录&#xff1a; calqlatr--CMakeList.txt…

网工内推 | 深圳网工,国企,最高20k,六险一金,NA以上认证

01 沛顿科技&#xff08;深圳&#xff09;有限公司 &#x1f537;招聘岗位&#xff1a;网络工程师 &#x1f537;岗位职责&#xff1a; 1、负责网络设备管理及维护&#xff0c;确保网络系统的稳定运行&#xff1b; 2、负责有效规划及实施网络布线系统&#xff1b; 3、负责服务…

学习C++第三天——对引用的深入了解

引用 引用不是新定义一个变量&#xff0c;而是给已存在变量取了一个别名&#xff0c;编译器不会为引用变量开辟内存空 间&#xff0c;它和它引用的变量共用同一块内存空间。 一个变量可以有多个引用&#xff1a; int main() {//一个变量可以有多个引用int a 10;int& b …

ubuntu的不同python版本的pip安装及管理

ubuntu的不同python版本的pip安装及管理_ubuntu 安装两个pip-CSDN博客https://blog.csdn.net/qq_32277533/article/details/106770850

老板舍不得买库存管理软件❓一招解决

在当今快节奏的商业环境中&#xff0c;仓库管理是企业运作中不可或缺的一环。对于许多中小型企业而言&#xff0c;简易且高效的库存管理系统尤为重要。搭贝简易库存管理系统针对仓库的出入库进行有效管理&#xff0c;帮助企业实现库存的透明化和流程的自动化。 客户的痛点 1. …

Java面试八股之Mybatis可以映射到枚举类吗

Mybatis可以映射到枚举类吗 Mybatis 可以映射到 Java 的枚举类型。默认情况下&#xff0c;Mybatis 会使用枚举类型的名称来进行映射。例如&#xff0c;如果你有一个如下的枚举类型&#xff1a; public enum UserStatus { ACTIVE, INACTIVE } Mybatis 会将数据库中的字符串值…