[英]Vuex store change not updating the component
我面臨一個問題,在更新我的商店值isRenewalFlow
后,我的組件沒有得到更新。
在調試時,我發現在突變[MUTATION_TYPES.IS_RENEWAL_FLOW]
更新存儲值后沒有調用組件的updated
生命周期。 甚至商店 getter 中的getIsRenewalFlow
也只在開始時調用一次,而不是在突變內部的商店更新之后調用。
這是代碼。
店鋪
const state = {
isRenewalFlow: undefined,
}
const getters = {
getIsRenewalFlow: (state) => state.isRenewalFlow,
}
const actions = {
[ACTION_TYPES.POPULATE_QUOTE_DATA]: (
{ dispatch, commit, state, rootState, getters }, payload
) => {
commit(MUTATION_TYPES.IS_RENEWAL_FLOW, payload)
}
}
const mutations = {
[MUTATION_TYPES.IS_RENEWAL_FLOW]: (state, payload) => {
state.isRenewalFlow = payload
},
}
零件
export default Vue.extend({
components: {
ErrorBoundary: () => import('@/components/common/ErrorBoundary.vue'),
},
computed: {
...mapGetters({
getIsRenewalFlow: 'getIsRenewalFlow',
}),
},
mounted() {
this.getIsRenewalFlow !== undefined &&
someFunc()
},
updated() {
this.getIsRenewalFlow !== undefined &&
someFunc()
},
})
即使在state.isRenewalFlow
更新了true
或false
內部mutations
[MUTATION_TYPES.IS_RENEWAL_FLOW]
之后, someFunc
也永遠不會被調用
updated
鈎子與 DOM 中的更改有關,如果此狀態未更新 DOM,您將不會看到調用updated
。
來自https://v2.vuejs.org/v2/guide/instance.html#Lifecycle-Diagram :
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.