2017-01-25 2 views
0

나는 다음과 같은 오류가 있습니다. JS

import Vue from 'vue' 
import App from './App' 
import store from './store' 

new Vue({ 
    el: "#app", 
    store, 
    render: h => h(App) 
}) 

store.js :

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

Vue.use(Vuex) 

export const store = new Vuex.Store({ 
    state: { 
    users: [ 
     {id: 1, name: 'Adrian', email: '[email protected]'}, 
     {id: 2, name: 'Magda', email: '[email protected]'} 
    ] 
    } 
}) 

내 구성 요소를 사용하여 $ 가기 :

<template> 
    <div class="usersNames"> 
    <ul> 
     <li v-for="user in usersNames">{{user.name}}</li> 
    </ul> 
    </div> 
</template> 

<script> 
    export default { 
    name: 'usersNames', 
    computed: { 
     usersNames() { 
     return this.$store.state.users; 
     } 
    } 
    } 
</script> 
+0

예제가 작동해야합니다. http://jsbin.com/hiduzinadu/edit?html,js,output –

+0

그러면 노드 또는 일부 패키지에 문제가있는 것 같습니다. – antym

+0

게시 한 코드가 실제로 코드를 작동시키기 때문에 말하기 어렵습니다. –

답변

0

작동해야처럼 예 보이지만, 내가 개선 될 것이라고 생각하고 또한 당신의 문제를 해결해야 다른 전략을 제공하고 싶습니다.

구성 요소에서 액세스하려는 데이터의 저장소에 getter를 만듭니다.

그래서 여기에 상점을 변경

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

    Vue.use(Vuex) 

    export const store = new Vuex.Store({ 
    state: { 
     users: [ 
     {id: 1, name: 'Adrian', email: '[email protected]'}, 
     {id: 2, name: 'Magda', email: '[email protected]'} 
     ] 
    }, 
    getters:{ 
     users: state => return state.users 
    } 
    }); 

그런 다음, 구성 요소, 사용자를 얻기 위해 그 게터를 사용합니다.

<script> 
export default { 
    name: 'usersNames', 
    computed: { 
    usersNames() { 
     return this.$store.getters.users 
    } 
    } 
} 
</script> 
+0

내가 게터를 사용하지만 지금은 내 오류가 있습니다 :'catch되지 않은 형식 오류 : (: 672), : 10 : (app.js에서 평가 28) VueComponent.usersNames에서 정의되지 않은 의 특성 '게터'을 읽을 수 없습니다 ' – antym

+0

그것은 같은 소리 내게 당신의 vuex 저장소가 올바르게 초기화되지 않았습니다. 이것이 getter와 state에 대한 직접 호출이 작동하지 않는 이유입니다. 올바른 위치에'Vue.use (vuex)'가 있는지 확인하십시오. 그렇지 않으면 저장소가 루트 Vue 인스턴스에서 올바르게 초기화되지 않았습니다 ..... 게시 한 코드에 있음을 알지만 루트 일 수 있습니다 발행물. 당신은 어떻게하면 '이. $ 저장소'를 구성 요소에 로그 아웃 할 수 있습니까? 상점의 인스턴스가 보입니까? – calbear47

+0

this. $ store returns : 'undefined';/ – antym

0

vuex가 vue에 제대로 삽입되지 않은 것으로 보입니다.

귀하의 질문과 관련이 없을 수도 있지만 모범 사례를 위해 mapState 도우미를 사용하는 것이 더 좋습니다. 구성 요소에서
:

import { mapState } from 'vuex' 

export default { 
    name: 'usersNames', 
    computed: { 
    ...mapState({ 
     usersNames: 'users' 
    }), 
    yourLocalComputed() {} 
    } 
} 
0

당신은 main.js을 변경할 수 있습니다 : './store'에서 가져 오기 {저장}을 (를);

+0

호를 찾거나 store.js를 수정 해 주셔서 감사합니다. export default new Vuex.Store ({}) – user7983657