programing

Vuex 및 vuex-module-decorator에서 작동하는 정적 모듈을 로드할 수 없습니다.

minecode 2022. 7. 18. 22:26
반응형

Vuex 및 vuex-module-decorator에서 작동하는 정적 모듈을 로드할 수 없습니다.

루트 Vuex 스토어가 있는 간단한 Vue 앱이 있습니다.user모듈.vuex-module-decorator를 사용하고 있습니다.있습니다store/store-accessor.tsVuex Nuxt의 예시와 같이 설정합니다.모든 모듈 ts 파일을 Import하고 결과를 내보냅니다.getModule(user)~하듯이userStore. 타이프 스크립트의 컴파일 문제는 없습니다.

내가 앱을 시작할 때, 이 앱은userStore.user.uidHelloWorld 컴포넌트에는 다음과 같은 정보가 있습니다.

TypeError: Cannot read property 'user' of undefined
    at Object.get (index.js?6fc5:121)
    at new HelloWorld (HelloWorld.vue?1d82:17)
    at collectDataFromConstructor (vue-class-component.esm.js?2fe1:97)
    at VueComponent.data (vue-class-component.esm.js?2fe1:172)

이 스택 트레이스는 vuex-module-decorator로 이 코드로 끝납니다.에러 위치를 코멘트로 표시했습니다.

function staticStateGenerator(module, modOpt, statics) {
    var state = modOpt.stateFactory ? module.state() : module.state;
    Object.keys(state).forEach(function (key) {
        if (state.hasOwnProperty(key)) {
            // If not undefined or function means it is a state value
            if (['undefined', 'function'].indexOf(typeof state[key]) === -1) {
                Object.defineProperty(statics, key, {
                    get: function () {
                        // ERROR HERE, modOpt.store.state has no property "user"
                        // modOpt.store looks like the root store, its state is empty.
                        // modOpt.name is "user", the name of my module.
                        return modOpt.store.state[modOpt.name][key]; 
                    }
                });
            }
        }
    });

셋업하려면 뭔가 해야 하나요?modOpt.store.state["user"]가 되다userStore모듈 같은 거요?

문제를 보여주기 위해 gitub repo를 만들었습니다.https://github.com/garyo/vuex-problem-test.git 그냥 git clone that,yarn install그리고.yarn serveJS 콘솔에 오류가 표시됩니다.

언급URL : https://stackoverflow.com/questions/58088921/cant-get-static-module-loading-working-with-vuex-and-vuex-module-decorators

반응형