先上代码:
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