source

Vuex가 정의되지 않은 속성을 읽을 수 없음

gigabyte 2022. 8. 16. 23:30
반응형

Vuex가 정의되지 않은 속성을 읽을 수 없음

Vuex를 사용하여 글로벌 변수를 사용하려고 하지만 계속 사용할 수 있습니다.undefined초기화해도 오류 발생Vuex사용.Vue.use();.

TypeError: Cannot read property 'isAuth' of undefined

store.syslog:

import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

export default new Vuex.Store({
  isAuth: true,
});

main.filename:

import store from './store/store';
....
new Vue({
  el: '#app',
  store,
  router,
  render: h => h(App),
.......

나는 전화한다isAuth다음과 같은 가치를 확인할 수 있습니다.this.$store.isAuth;이 때문에,undefined에러입니다.

초기화했습니다.Vuexstore.js, 그러나 아직 가지고 있습니다.undefined오류입니다. 제가 놓치고 있는 게 있나요?

현재 진행 중인 작업에서는 다음과 같은 작업을 수행할 수 있습니다.this.$store.state.isAuth저는 이렇게 하고 싶어요.

지금까지와 같이 스토어를 사용한 적은 없지만 모듈을 사용할 때는 문제가 없었습니다.이렇게 시도해 보세요.

// authModule.js
const state = {
    isAuth: true
}

const getters = {
    getIsAuth (state) {
        return state.isAuth
    }
}

export default {
    state,
    getters
}

그런 다음 다음과 같이 등록합니다.

import authModule from './modules/authModule'
export default new Vuex.Store({
    modules: {
        authModule
    }
})

그런 다음 vue 인스턴스에서 다음을 수행합니다.

import {mapGetters} from 'vuex'

computed: {
    ...mapGetters({
        isAuth: 'getIsAuth'
    })
}

에 액세스 할 수 있게 되었습니다.this.isAuth. 다음과 같이 액세스할 수도 있습니다.this.$store.state.authModule.isAuth

프로젝트 규모가 커지면 깔끔하게 정리할 수 있기 때문에 문서 내용에 따르면 이는 실제로 베스트 프랙티스입니다.

언급URL : https://stackoverflow.com/questions/47190325/vuex-cannot-read-property-of-undefined

반응형