亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

VueJs 方法是直接改變一個響應

VueJs 方法是直接改變一個響應

慕神8447489 2022-10-08 15:01:10
我有一個父組件,我正在那里查詢后端,然后在導航欄和父組件中的 activeView 數據的幫助下,點擊我呈現一個新的子頁面,并在幫助下從我的響應中傳遞一個道具vue中的v-if。但是該方法的功能之一是更改我在父組件中的道具也改變了我的響應這怎么可能。這是我的子組件的安裝前:beforeMount() {    console.log(this.plansPropOrg);    this.plansProp = this.plansPropOrg;    this.tempPlan = this.plansProp.currentPlan;    console.log(this.plansProp);    this.propsToData();}有問題的函數是 propsToData 當我在這里注釋掉它是正常的但我必須調用它。這是我進行查詢時的父母:await axios.post("xxxxx/yyyyyyy").then(res => {                console.log("heyyo");                console.log(res);                this.plansData = res.data.data;                console.log(this.plansData);            });這是數據的道具,它只是將布爾值翻譯成英文。但是在響應中,(如果這是真的)我將這些值視為翻譯。propsToData() {        //TODO: Burdaki if' ifsubscriber olarak de?i?ecel        console.log("AAA");        console.log(this.plansProp);        if (this.plansProp.isSubscriber) {            console.log("BBBBB");            this.plansProp.currentPlan.analytics                ? (this.plansProp.currentPlan.analytics = this.$t(                      "settings.plans.active"                  ))                : (this.plansProp.currentPlan.analytics = this.$t(                      "settings.plans.inactive"                  ));         }   }這怎么可能呢?它怎么能改變反應呢?
查看完整描述

1 回答

?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

您正在plansProp通過引用復制響應和對象,這意味著兩個對象都指向內存中的同一位置。當您更改其中一個時,另一個仍然指向內存中的同一位置,這意味著當您檢索它時,它將是同一個對象。

根據對象的結構,您想要進行淺拷貝(Object.assign())或深拷貝( )。JSON.parse(JSON.stringify())

更多信息在這里https://www.javascripttutorial.net/object/3-ways-to-copy-objects-in-javascript/。


查看完整回答
反對 回復 2022-10-08
  • 1 回答
  • 0 關注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號