vue.js - 在action中的函数,能不能获取到state中的数据呢?

查看:2479
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆