簡體   English   中英

在商店Vue js中更新后,View不會更新

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM