programing

스토어에서 정의되지 않은 'getProduct'(작업 이름) 속성을 읽을 수 없습니다.vuex의 _callee

elecom 2023. 6. 17. 08:17
반응형

스토어에서 정의되지 않은 'getProduct'(작업 이름) 속성을 읽을 수 없습니다.vuex의 _callee

저는 상태 관리를 위해 vuex를 사용하는 vue 프로젝트를 진행하고 있습니다.저는 상태, 행동, 돌연변이를 정의하고 행동을 호출하기 위한 파견을 정의했습니다.그러나 문제는 스토어에서 정의되지 않은 속성 'getProduct'(작업 이름)을 읽을 수 없습니다.와 같은 오류가 디스패치 근처에서 발생한다는 것입니다.전화를 걸었습니다.

내가 어디서 잘못하고 있는지 누가 안내해 줄 수 있습니까?

내 코드는 다음과 같습니다.

구성 요소에서 디스패치 작업:

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

작업 코드:

여기 ProductService에서는 API 호출을 수행하는 Product() 기능을 가지고 있습니다.

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
   }
}

오랜 시간 디버깅한 결과, 액션 코드 내부의 서비스 함수 'ProductService.getProduct()'에 오류가 있다는 것을 알게 되었습니다.여기서 저의 경우 'ProductService'라는 이름의 서비스 파일을 생성하여 API 호출을 위한 함수를 정의하였으며, 'getProduct()'는 API 호출을 통해 제품 목록을 얻는 함수 중 하나입니다.

제가 이 함수 호출이 값을 반환하는지 여부를 인쇄하려고 시도하는 동안 정의되지 않은 값이 반환되었고 위의 오류가 발생했습니다.그런 다음 이 함수 호출이 정의되지 않은 상태로 반환되는 서비스 함수의 문제를 해결했고 그 후에는 정상적으로 작동합니다.

코드 아래 줄에 오류가 있습니다.

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

@skirtle과 @Radu Diă의 의견에 감사드립니다.

언급URL : https://stackoverflow.com/questions/61265189/cannot-read-property-getproductaction-name-of-undefined-at-store-callee-in

반응형