Vuex将一些数据返回到组件

时间:2019-01-16 11:39:06

标签: vue.js promise axios vuex

我的vuex操作中有一个axios呼叫

  return axios({
      method: 'get',
      url: `/myurl`,

    }).then(function (response) {
      context.commit('value', response.data.data);
    }),

但是这在我的组件中称为

this.$store.dispatch("fetchmystuff")

如何向组件返回值?

过去,我将then()附加到调度程序上

 this.$store.dispatch("fetchmystuff")
    .then(function (response) {
     //do some component stuff
 }),

但是我想先在vuex中运行提交,然后将某些内容返回给组件。

1 个答案:

答案 0 :(得分:1)

您已分派动作fetchmystuff。 从组件内部,您要么想要。

1。在商店中查询value

的状态
computed: {   
  value() {    
    return this.$store.state.value
  } 
}

2。调用从计算属性中获取value状态的吸气剂

  

在组件中

computed: {   
  value() {    
    return this.$store.getters.value
  } 
}
  

在商店getters.js

getters: {
  // ...
  value: (state, getters) => {
    return getters.value
  }
}

调度程序/操作不需要访问组件
(因为状态仅通过变异/提交在存储中设置,并且状态已通过getter传递给其他组件)。

这允许商店与应用程序的组成部分之间的关​​注点分离。