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