在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Ruby  網(wǎng)絡安全  HTML/ rails-webpacker-vue: vuex state值改變,相應的co

rails-webpacker-vue: vuex state值改變,相應的computed值卻仍為初始值

環(huán)境:rails webpacker: vue + vuex + vue-router + iview
問題:通過mutation改變state值,通過vue瀏覽器調試工具可以看到mutation正常觸發(fā),但computed獲取對應state值的變量卻仍然為state的初始值

測試:拉取了項目:https://github.com/gorails-screencasts/vuejs-trello-clone, 在其中測試,表現(xiàn)正常
+++++++++++++++++++
與vuejs-trello-clone項目一樣,開啟了turbolink, 但沒什么幫助,問題依舊
+++++++++++++++++++
補充:

// store.js
state: {
    testObj: {},
    test: false
  },
  mutations: {
    updateObj (state, obj) {
      state.testObj = obj
    },
    updateTest (state, value) {
      state.test = value
    }
  }

// pageA.vue path:'/pagea' name: 'pagea'
this.$store.commit('updateObj', objData)
this.$store.commit('updateTest', true)

// comB.vue pageA的子組件
computed: {
    test() {
      return this.$store.state.test
    },
    testObj() {
      return this.$store.state.testObj
    }
  }

簡化的主要過程如上,估計得附一整個項目對找問題原因才有幫助
++++++++++++++++++++++++
2018-04-12補充:
問題重現(xiàn)demo: https://github.com/BoleLee/ra...
啟動項目,首頁即可測試

回答
編輯回答
乖乖噠

不貼代碼怎么幫你看嘛- -

2017年12月28日 13:07
編輯回答
小眼睛

此問題已經(jīng)解決,可見此issue#1423

// import Vue from 'vue/dist/vue.esm'
import Vue from 'vue'

修改引用 vue 的版本,問題就解決了,可能是由于我有的地方用的是 vue.esm, 有的直接用 vue, 導致沖突,這個問題也引起有時候會報[Vue warn]

2017年5月5日 06:30
編輯回答
玄鳥

這么看是沒有問題

this.$store.commit('updateObj', objData) 
this.$store.commit('updateTest', true) 

這段代碼是在哪里運行的?mutation 必須是同步的

2018年5月17日 16:51