Неизвестная ошибка типа действия при использовании vuex store - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь отправить действие, но я получаю эту ошибку: «Неизвестный тип действия».

Я понял, почему у меня есть эта ошибка, но я просто не знаю, что сделал неправильно.

Мой компонент:

created() {
    this.$store.dispatch('techValid/fetchTechValids');
  },

Мой магазин (индекс. js):

import Vue from 'vue';
import Vuex from 'vuex';
import techValid from './modules/techValid';

Vue.use(Vuex);

export default new Vuex.Store({
  modules: {   techValid,
  },
});

Мой магазин (techValid. js находится в папке модуля в магазине). :

actions: {
    async fetchTechValids() {
      await axios
        .get('http://localhost:3080/techValid')
        .then((response) => {
          console.log('API CALL OK');
          console.log(response);
          techValid.commit('SET_ALL_TECHVALIDS', response);
        })
        .catch((error) => {
          console.log('API CALL NOT OK', error);
          throw new Error(`${error}`);
        });
    },
  },

Main. js:

//Some imports

new Vue({
  el: '#app',
  store,
  router,
  components: { App },
  template: '<App/>',
});

Ответы [ 2 ]

1 голос
/ 02 апреля 2020

Вы можете просто вызвать actions с таким именем действия, как это

created() {
    this.$store.dispatch('fetchTechValids');
}

Вам не нужно указывать имя модуля при вызове действий и мутаций.

И внутри action функция, вы можете вызвать mutations, как

actions: {
  async fetchTechValids({commit}) {
     let response = await axios.get('http://localhost:3080/techValid'); // since async function is using, you can directly get the response.
     console.log('API CALL OK');
     console.log(response);
     commit('SET_ALL_TECHVALIDS', response);
  },
}

. Вы можете использовать условие if перед вызовом commit и использовать try-catch для отлова ошибок.

0 голосов
/ 02 апреля 2020

Хорошо, спасибо всем вам!

Теперь это работает, я удалил имя модуля в моей рассылке: this.$store.dispatch('fectTechValids')

И удалил пространство имен в моем магазине и просто экспортировал state, getters, mutations, actions

...