2017-02-10 2 views
0

Сегодня рано утром попробовать vuex 2.1.2 Vue: 2.1.0, структура каталогов выглядит следующим образомVuex2.0, как настроить и как Геттеры

file

store.js:

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

Vue.use(Vuex) 

import common from './common/store' 

export default new Vuex.Store({ 
    modules : { 
     common 
    } 
}) 

мутации-types.js:

export const ADD_NUM = "ADD_NUM" 

общие/store.js:

import * as types from '../mutations-types' 

const state = { 
    num : 1 
} 

const mutations = { 

    [types.ADD_NUM] : function(state){ 
     state.num = state.num + 1; 
    }, 
} 

export default { 
    state, 
    mutations 
} 

общие/actions.js:

import * as types from '../mutations-types' 

export default { 
    setNum : store => { 
     store.dispatch(types.ADD_NUM) 
    }, 
} 

общие/getters.js:

export default { 
    getNum : state => { 
     state.common.num 
    }, 
} 

Затем получают значение числа в Hello.vue через getters

template

В main.js файла вход ви, магазин впрыскивается

ошибка выполнения:

Property or method "getNum" is not defined on the instance but referenced during render

Почему сообщается эта ошибка? Соответствует ли эта структура и код каталогов?

+0

Попробуйте использовать mapGetters, он работает лучше и проще для меня: https://vuex.vuejs.org/en/getters.html Кроме того, в методе getNum в getters.js вы ничего не возвращаете, вам нужно либо удалить скобки, либо вернуться state.common.num – Potray

+0

Я не совсем понимаю «form'vuex» «vuex», как найти gettersMap – peakcool

+0

Я не подтвердил ваш последний комментарий, мне кажется, что Google Translate является Google Translate. – Potray

ответ

0

Прежде всего, я не читал официальные документы

Использование mapGetters решает проблему

БЛАГОДАРЯ @Potray

я сослаться на официальный демо link

Смежные вопросы