인프런 커뮤니티 질문&답변

전민호님의 프로필 이미지
전민호

작성한 질문수

Typescript with Vue 실전 프로젝트

vuex-module-decorator 사용하기

에러 표시 질문이요!

해결된 질문

작성

·

279

1

개발자 도구에서 보면 아래 사진과 같은 에러가 뜨는데 무슨 이유 인가요?

import {Module, VuexModule, Mutation, Action} from 'vuex-module-decorators';

@Module({namespaced: true, name: 'moduleB'})
export default class ModuleB extends VuexModule {
    data: string = 'moduleB';
    
    @Mutation
    setData(data: string){
        this.data = data;
    }

    @Action
    editData(data: string) {
        this.context.commit('setData', data);
    }

    get moduleBdata(){
        return this.data;
    }
}

답변 3

1

성도희님의 프로필 이미지
성도희
지식공유자

안녕하세요!

코드를 확인해 보니, App.vue의 스토어를 호출하는 부분에서 에러가 발생하고 있습니다.

  this.$store.dispatch('moduleB/editData', 'test');

vuex-module-decorator 커뮤니티를 살펴봤는데, 
이와 같은 에러가 발생할 경우 동적으로 모듈을 가져오는 방법을 권장하고 있습니다.
App.vue의 스크립트 부분을 아래와 같이 수정해 보셔요 ^^

<script lang="ts">
import { Component, Vue } from 'vue-property-decorator';
import HelloWorld from './components/HelloWorld.vue';
import { getModule } from "vuex-module-decorators";
import MyStore from '@/store/moduleB.store.ts';

@Component({
components: {
HelloWorld,
},
})
export default class App extends Vue {
moduleB: any;

created(){
this.moduleB = getModule(MyStore, this.$store);
this.moduleB.editData('test');
}

}
</script>

왜 이런 에러가 발생하는지, 왜 동적모듈을 가져오는걸 권장하는지
딱히 개발자도 코멘트는 없네요 ...

아래 링크를 참고하여 수정한 것입니다.

https://github.com/championswimmer/vuex-module-decorators/issues/86
https://github.com/championswimmer/vuex-module-decorators/issues/116

0

전민호님의 프로필 이미지
전민호
질문자

https://github.com/rurusyu/vue-typescript-ex.git

여기에 올려놨습니다. yarn으로 설치해놨습니다.!

0

성도희님의 프로필 이미지
성도희
지식공유자

안녕하세요! 

올려주신 코드만으로는 확인이 어렵습니다 ㅠ.ㅠ 혹시 전체적인 코드를 확인할 수 있는 방법이 없을까요?

github같은곳에 프로젝트 업로드 하신 뒤 링크를 알려주시면 도움을 드릴 수 있도록 하겠습니다!

전민호님의 프로필 이미지
전민호

작성한 질문수

질문하기