Не удается прочитать свойство 'getProduct' (имя действия) из неопределенного в Store._callee в vuex - PullRequest
0 голосов
/ 17 апреля 2020

Я работаю над проектом vue, где я использую vuex для управления состоянием. Я определил состояние, действия, мутации, а также отправку для вызова действия. Но проблема в том, что я получаю сообщение об ошибке при отправке, например, Невозможно прочитать свойство 'getProduct' (имя действия) undefined в Store._callee.

Может кто-нибудь подсказать мне, где я делаю ошибку?

Вот мой код:

Действие отправки из компонента:

async created() {
  try {
     await this.$store.dispatch("getProduct");
  } catch (error) {
     console.log("Error", error);
  }
}

Код действия:

Здесь, в ProductService, у меня есть функция getProduct (), где я выполняю Вызов API.

const actions = {
   async getProduct({ commit }) {
      commit("GET_PRODUCT", await ProductService.getProduct());
   }
}

Код мутации:

const mutations = {
   GET_PRODUCT: (state, product) => {
      state.product = product;   // Here I am mutating the state
   }
}

1 Ответ

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

После долгой отладки я узнал, что произошла ошибка в сервисной функции 'ProductService.getProduct ()' внутри кода действия. Здесь в моем случае я создал служебный файл с именем 'ProductService' , в котором я определил функции для вызовов API, а 'getProduct ()' является одной из функций, где выполняется вызов API чтобы получить список продуктов.

В то время как я пытался напечатать, возвращает ли этот вызов функции значения или нет, и это возвращало неопределенное, и для этого приходила вышеупомянутая ошибка. Затем я исправил проблему в сервисной функции, для которой этот вызов функции возвращает неопределенное значение, и после этого он работает нормально.

Ошибка была в строке кода ниже.

commit("GET_PRODUCT", await ProductService.getProduct());

Спасибо @skirtle и @Radu Diță за ваши комментарии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...