Vuex возвращает некоторые данные обратно компоненту - PullRequest
0 голосов
/ 16 января 2019

У меня есть аксиоз в моих действиях vuex

  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 голосов
/ 16 января 2019

Вы отправили действие 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
  }
}

Диспетчеру / действию не требуется доступ к компоненту
(поскольку состояние устанавливается только в хранилище с помощью мутаций / фиксаций, а состояние передается другим компонентам через геттеры).

Это позволяет разделить проблемы между магазином и компонентами вашего приложения.

...