我有几个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并将它作为有效负载传递给承诺突变,如上所述?