鍍金池/ 問答/HTML/ chrome 瀏覽器 vue devtools 擴展上點擊組件頁面上就能顯示效果

chrome 瀏覽器 vue devtools 擴展上點擊組件頁面上就能顯示效果,不點擊就沒效果

最近做的這個 vue 項目,有一個很困擾我的地方,特地來發(fā)帖請教。

用的是 vux 的一個 checklist 組件,
這是我的界面
clipboard.png

上一題下一題都是這樣的選擇列表,我的需求是返回上一題后,上一題的列表還是剛才我選擇的記錄

   <checklist :ref="questionnaireSubject.subjects[arrayIndex].subject.id+'-checklist'" :title="questionnaireSubject.subjects[arrayIndex].subject.typeName" :max="checkMax"
           v-model="checkListResult"    :options="checkListData" @on-change="answerChange" class="marginBottom"></checklist>

這個 checklist 的組件 v-model 綁定的一個checkListResult,我的做法是每點擊下一題時就把當前這個 checklist 選擇的數(shù)據(jù)保存到 vuex 中,同時這個組件的 mounted 都去 vuex 中查一下,有保存記錄的話就把該記錄查出來(我通過數(shù)組下標來區(qū)分是哪一題的選擇記錄)賦給這個 checklistResult,以下是相關(guān)代碼:

      getcheckListResultFromVuex(){
        if(this.$store.state.questionnaire.questionnaireAnswer[this.arrayIndex].answerForVuex.length>0){
          this.checkListResult=this.$store.state.questionnaire.questionnaireAnswer[this.arrayIndex].answerForVuex
          return this.$store.state.questionnaire.questionnaireAnswer[this.arrayIndex].answerForVuex
        }else{
          return []
        }
      }

但是實際結(jié)果總是不成功,我在 chrome 瀏覽器的 vue devtools 工具中進行查看,這是我點擊返回上一題之后的樣子,可以看出這個選項是沒有被選上的,
clipboard.png

但是當我點擊這個調(diào)試插件中顯示的那個 FlCheckList 后,這個組件就按照我從 vuex 中取出的記錄給勾上了:
clipboard.png

這里面的getcheckListResultFromVuex()是一個計算屬性,他返回了結(jié)果給 v-model 綁定的 checkListResult。

我不明白,為什么我只是在瀏覽器調(diào)試插件上點了一下,這個點一下的操作不就是讓我可以查看該組件當前的一些狀態(tài)嗎,難道我寫的代碼通過這個點擊給調(diào)用了? 調(diào)試工具不應(yīng)該有這種作用啊。。。

我也試著把代碼寫在 mounted 中
clipboard.png
但這下載連點擊調(diào)試工具都沒用了。。

還請各位給點意見,謝謝

回答
編輯回答
傻丟丟

不要在計算屬性里寫邏輯或者是改變數(shù)據(jù)
不要在計算屬性里寫邏輯或者是改變數(shù)據(jù)
不要在計算屬性里寫邏輯或者是改變數(shù)據(jù)

你可以watch arrayIndex 的變化

watch:{
    'arrayIndex':function(){    this.checkListResult=this.$store.state.questionnaire.questionnaireAnswer[this.arrayIndex].answerForVuex
    }
}

當你點擊vue devtools 才會出效果是因為這時會獲取該組件的data和計算屬性

2017年9月24日 05:57