[英]View doesn't get updated after updates in store Vue js
我有商店 ,我有行動和突變
我的動作loadProducts調用變異setProducts ,我在其中設置狀態值,它工作正常
const actions = {
loadProducts({ commit }, accountId ) {
Products.where( { accountId: accountId } ).all().then((products) => {
commit("setProducts", {accountId: accountId, products: products.data})
});
},
}
const mutations = {
setProducts(state, {accountId, products}) {
Vue.set(state, 'products', products);
}
}
然后在我的組件中,我使用mapGetters和計算得到數據
computed: {
...mapGetters([
'products'
]),
products2() {
console.log(this.products)
return this.products;
}}
一切正常,但后來我嘗試更新數據,它也有效,我得到更新狀態 - 在Vuex控制台我可以看到我的更新狀態和新數據,但視圖本身不會更新 - 所以我必須重新加載頁面,看到數據出現。 我也通過動作,突變和吸氣劑來實現,突變看起來像這樣:
replace() {
Vue.set(state, key, val);
}
您是否應該使用mapState
而不是mapGetters
將州products
直接映射到您的組件? 你有一個叫做products
的吸氣劑可以做一些額外的工作嗎?
...mapState([
'products'
]),
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.