我有几个vuex
个模块。为简单起见,我将以我所面对的一个例子来解释我的问题:
我有2个vuex
模块 firstModule.js 和 secondModule.js
firstModule.js 的状态为myArray[ ]
:
//firstModule
const state = {
myArray: [//has some items]
}
在 secondModule.js 中,我有一个从外部API异步提取某些数据的操作。
此操作会提交一个变异,该变异应搜索 firstModule&#39> myArray[ ]
如果获取的数据出现在 firstModule myArray[ ]
中,则将其添加到 secondModule&#39> s {{1 }}
newArray[ ]
但是,问题在于:
根据docs模块中的突变无法访问 rootState ,只有操作和获取者才能访问 rootState
在突变中无法访问rootAtate,我如何执行上面执行的逻辑?
我是否必须访问操作中的 rootState 并将其作为有效负载传递给已提交的突变,如上所述?
答案 0 :(得分:2)
根据我的经验,vuex
模块中的突变应该以他们描述的方式直接影响模型。因此,您的addToNewArray
方法应该只将有效负载数据添加到州的newArray
属性中。
操作是运行逻辑代码以确定是否进行突变的位置。您可以在myArray
操作中对第一个模块的fetchData
进行检查。这是最好的做法。
但是,如果您确实需要访问变异中的rootState
变量,则必须将其作为变量引用传递,就像您目前一样。