vue 使用vuex中的data数据引用问题

先上代码:

this.userRoleInfo2 = this.$store.state.userInfo
this.userRoleInfo2.name = 111
this.userRoleInfo2.orgName = 222
this.userRoleInfo2.orgId = 4444

问题描述:

博主,定义了一个变量userRoleInfo2来接收了 从vuex中获取了userInfo用户信息,当我去改变变量userRoleInfo2中的值的时候,发现原vueX中的userInfo值跟着变化了

问题的分析
在vue中,数组和对象传递都是引用传递。赋值时传递的并不是值,而是指向了同一个空间。

解决办法
转成字符串在转成json
JSON.stringify 将一个 JavaScript 值(对象或者数组)转换为一个 JSON 字符串
JSON.parse 用来解析 JSON 字符串,将数据转换为 JavaScript(对象或者数组)

//修改之后
this.userRoleInfo2 = JSON.parse(JSON.stringify(this.$store.state.userInfo)
this.userRoleInfo2.name = 111
this.userRoleInfo2.orgName = 222
this.userRoleInfo2.orgId = 4444

你可能感兴趣的:(uniapp,javaScript,vue.js,前端,javascript)