小提琴:https://jsfiddle.net/mjvu6bn7/數據變量不被從觀察者更新在Vue.js計算屬性與Vuex
我有一個計算屬性,這對Vuex存儲的變量,它被異步設定的依賴性的觀察者。我試圖設置Vue組件的數據變量,當這個計算的屬性發生變化時,但是這沒有發生。
這裏是Vue的組件:
new Vue({
el: '#app',
store,
data : {
myVar : ""
},
beforeMount() {
this.$store.dispatch('FETCH_PETS', {
}).then(() => {
console.log("fetched pets")
})
},
computed:{
pets(){
return this.$store.state.pets
}
},
watch:{
pets: (pets) => {
console.log("Inside watcher")
this.myVar = "Hey"
}
}
});
這裏是Vuex店:
const state = {
pets: []
};
const mutations = {
SET_PETS (state, response) {
console.log("SET_PETS")
state.pets = response;
}
};
const actions = {
FETCH_PETS: (state) => {
setTimeout(function() {
state.commit('SET_PETS', ['t7m12qbvb/apple_9', '6pat9znxz/1448127928_kiwi'])
}, 1000)
}
}
const store = new Vuex.Store({
state,
mutations,
actions
});
Here是這創造小提琴。正如你所看到的,myVar沒有被更新,但是當寵物被加載時觀察者被調用。
這實際上是一個語法錯誤 - 你不能把變量聲明內的對象文字。 – Aletheios