Vuejs/Nuxtjs中的watch無法監聽來自Vuex Store中的物件陣列的變化
P粉063039990
P粉063039990 2024-03-26 15:34:10
0
2
464

我正在使用Vuejs/Nuxtjs 在此應用程式中開發一個應用程序,我有一個元件IdentifiersNode.vue ,我想在其中監視Vuex 儲存數組 identifiersArray

我可以觀察identifiersArray 的直接更改,例如push、直接鍵值更改,但是當我向identifiersArray 中的物件新增物件時, watch 將因�

P粉063039990
P粉063039990

全部回覆(2)
P粉846294303

如果您使用 vuex,我建議使用 mapGetters 從商店取得您的商品。這將自動監視值並在每次項目變更時重新渲染。

這裡是文檔:文檔

#小例子

商店

import Vue from "vue";
import Vuex from "vuex";

Vue.use(Vuex);

const state = {
  data: ["Hello", "world"]
};

const mutations = {
  addItem(state, item) {
    state.data.push(item);
  }
};

const getters = {
  getData: (state) => state.data
};

export default new Vuex.Store({
  state,
  mutations,
  actions,
  getters
})

元件



sssccc

以下是一個 codepen 作為範例: https://codesandbox.io/s/vuex-store-forked-bl9rk0?file=/src/components/HelloWorld.vue

如果您�%B

P粉561323975

提供答案可能對未來的其他人有所幫助。

我實際上是將物件附加到 Vuex Store 中陣列中的現有物件中。因此,手錶無法辨識變化。我將其更改為 vue.set 這對我有用。

以前我使用附加到現有物件:

identifiersNode.instanceData = payload.instanceData

後來我改為:

// Use the Vue reactive approach to add the instanceData object to existing object
Vue.set(identifiersNode, 'instanceData', payload.instanceData)

以下是我在Vue組件�%B

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板