我有幾個vuex
模塊。爲簡單起見,我將解釋我的問題的一個例子,我現在面臨什麼:訪問rootState中不同模塊的突變
我有2個vuex
模塊firstModule.js和secondModule.js
firstModule.js有myArray[ ]
在它的狀態:
//firstModule
const state = {
myArray: [//has some items]
}
在secondModule.js我有一個從室外廣告異步讀取一些數據的動作最終API。
這一行動承諾應搜索獲取的數據是否存在於突變firstModule的myArray[ ]
如果所取得的數據存在於firstModule的
myArray[ ]
,然後將其添加到secondModule的newArray[ ]
const state = { newArray: [] } const mutations = { addToNewArray: (state, payload) => { function findIyem(value){ return value === payload.data; }; var item = payload.rootData.myArray.find(findItem); state.newArray.push(payload.data); } } const actions = { fetchData: ({commit, rootState}) => { // fetches some data from external API var fetched data = data // data is which I received from fetching commit('addToAnotherArray', {data: data, rootData: rootState.firstModule.myArray} } }
但是,這裏的問題:
根據模塊不得到rootState訪問docs突變,只有動作和getter得到沒有訪問rootState
在突變中訪問rootAtate,我如何執行上面執行的邏輯?
我是否必須在操作中訪問rootState並將它作爲有效負載傳遞給承諾突變,如上所述?