我無法獲得雙向計算屬性與vuex結合使用。Vue.js 2:不能使用雙向計算屬性結合vuex
如果有輸入更改,我想將getIsUnsavedData
設置爲true並將這些更改「複製」/提交到新變量$store.state.authenticatedUser.changedData
。在有任何改變之後,我想要輸入get()
其值$store.state.authenticatedUser.changedData
而不是$store.state.authenticatedUser.data
來顯示更改。
在拳頭一切都像預期的一樣工作。如果有輸入更改,則更改的值將在$store.state.authenticatedUser.changedData
屬性中複製。 getIsUnsavedData
值更改爲true,get()指向複製的數據。 只剩下一個錯誤。突然,雖然vuex商店正在更新,但計算屬性永遠不會改變。 set()
函數仍然被調用,但get()
沒有。
<ui-textbox @change="valueChanged" v-model="userName"></ui-textbox>
// ...
computed: {
userName: {
get() {
return this.$store.getters.getIsUnsavedData ? this.$store.state.authenticatedUser.changedData.name : this.$store.state.authenticatedUser.data.name
},
set(value) {
this.$store.commit('setChangedUserData', {
key: 'name',
value: value
})
}
}
},
methods: {
valueChanged() {
this.$store.commit('setUnsavedState', true)
}
},
// ....