我正在使用Vuejs/Nuxtjs 在此應用程式中開發一個應用程序,我有一個元件IdentifiersNode.vue ,我想在其中監視Vuex 儲存數組 identifiersArray。
Vuejs/Nuxtjs
IdentifiersNode.vue
identifiersArray
我可以觀察identifiersArray 的直接更改,例如push、直接鍵值更改,但是當我向identifiersArray 中的物件新增物件時, watch 將因�
push、直接鍵值更改
watch
如果您使用 vuex,我建議使用 mapGetters 從商店取得您的商品。這將自動監視值並在每次項目變更時重新渲染。
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 })
{{ data }} add item sssccc
以下是一個 codepen 作為範例: https://codesandbox.io/s/vuex-store-forked-bl9rk0?file=/src/components/HelloWorld.vue
如果您�%B
提供答案可能對未來的其他人有所幫助。
我實際上是將物件附加到 Vuex Store 中陣列中的現有物件中。因此,手錶無法辨識變化。我將其更改為 vue.set 這對我有用。
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
如果您使用 vuex,我建議使用
mapGetters
從商店取得您的商品。這將自動監視值並在每次項目變更時重新渲染。這裡是文檔:文檔
#小例子
商店
元件
以下是一個 codepen 作為範例: https://codesandbox.io/s/vuex-store-forked-bl9rk0?file=/src/components/HelloWorld.vue
如果您�%B
提供答案可能對未來的其他人有所幫助。
我實際上是將物件附加到 Vuex Store 中陣列中的現有物件中。因此,手錶無法辨識變化。我將其更改為
vue.set
這對我有用。以前我使用附加到現有物件:
後來我改為:
以下是我在Vue組件�%B