2017-02-17 101 views
1

我無法讓我承諾在商店工作。vuex提交不承諾存儲

我通過一個動作調用突變,這似乎工作正常。

export const location = { 
    state: { 
    x: 0, 
    y: 0, 
    z: 0, 
    extent: [], 
    epsg: 'EPSG:3857' 
    }, 
    mutations: { 
    setLocation(state, payload) { 
     // mutate state 
     console.log("Commit"); 
     state.x = payload.x; 
     state.y = payload.y; 
     console.dir(state); //this does return the mutated state. 
    } 
    }, 
    actions: { 
    setLocation(context, payload) { 
     console.dir(payload); 
     context.commit('setLocation', payload); 
    } 
    }, 
    getters: { 
    mapLocation(state) { 
     return state 
    } 
    } 
} 

動作被導入到我的組件:

methods: { 
    ...mapActions(['setLocation']), 

然後叫:

var location = { 
     x: data[0], 
     y: data[1] 
    } 
    this.setLocation(location); 

這一切似乎工作,但是當我檢查了Vue的開發工具,該Vuex基本狀態保持不變,我有一個活躍的變異(setLocation)。我可以點擊'全部提交'來提交可行的突變。

在我的組件中,我在getter mapLocation上使用了一個觀察器,當我單擊Commit All時觸發。

我該如何強迫它向商店提交?

感謝

回答

2

好吧,這其實是一個很簡單的問題/監督。

我還沒有在我正在觀看的計算屬性的DOM中建模任何東西,所以它從未更新過。

所以解決方案只是使用v-model =「mapLocation」來確保手錶着火。