vue.js - 在action中的函数,能不能获取到state中的数据呢?
本文介绍了vue.js - 在action中的函数,能不能获取到state中的数据呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
我在action中试了一下:
syncPreItem: ({commit}, newItem) => {
commit('syncPreItem', newItem)
console( this.$store.state.activeIndex)
},
这样做是不行的,但我的确需要获取state中的数据,请问有办法吗?
========
刚刚想到一个办法:
在Mutation中写:
testMutation(state, callback) {
callback.msg = 'testing...'
}
在action中写:
test: ({commit}, payload) => {
let obj = {}
commit('testMutation', obj)
console.log(obj)
},
貌似能传回数据,但不确信这样做,会不会有什么问题隐患。或者,我对vuex的理解就是错误的。
谢谢朋友们帮我指点一二。
解决方案
当然可以。
文档里有说明的,关键词是rootState
这里的rootState是总的state。可以获取任何module state里的数据。
我给个例子吧。
假设有个articles 的module。然后下面有articles state数组。
我在其他module,想要获取articles module的数据的话,这么写。
actionSaveCurrentEditTitle ({ commit, rootState }, titledata) {
const articles = rootState.articles.articles
// 剩下就是随意操作了。
}
这篇关于vue.js - 在action中的函数,能不能获取到state中的数据呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文