2017-11-08 6 views
2

Vuex로 전역 변수로 작업하려고하지만 undefinedVuexVue.use();으로 초기화해도 오류가 계속 발생합니다.Vuex 정의되지 않은 속성을 읽을 수 없습니다

TypeError: Cannot read property 'isAuth' of undefined

store.js :

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

Vue.use(Vuex); 

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

main.js :

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

내가 이런 식으로 값을 볼 수 isAuth 전화는 : this.$store.isAuth;은이는 undefined 오류가 발생합니다.

Vuexstore.js에 초기화했으나 여전히 undefined 오류가 있습니다. 제가 누락 된 것이 있습니까?

답변

1

짐작할 수 있겠지만, 현재 수행중인 작업과 동일 할 수도 있습니다. 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

이것은 실제로 프로젝트가 커질 때 정리가 잘되어있어 문서에 따라 모범 사례입니다.

+0

답변 해 주셔서 감사합니다. 나는 더 이상 오류를 얻지 않지만'isAuth'의 값으로'undefined'를 얻습니다. 값을보아야합니까? 아니면 값을'undefined'로 보는 것이 정상입니까? –

+0

undefined, no를 결코보아야합니다. vue 구성 요소의'console.log (this)'를 살펴보면'$ store'가 보일 것입니다. 가치가 있습니까? 상태로 드릴 다운하여 어떤 가치가 있는지 확인할 수 있어야합니다. 시작하기에 좋은 장소가 될 것입니다. – webnoob

+0

조금 더 수정했고 지금은 어디서든'$ store'를 볼 수 있습니다. 시간 내 주셔서 다시 한 번 감사드립니다! –

관련 문제