2016-09-20 33 views
3

我測試Vuejs 2.0 & Vuex與模塊設計,但部件不能訪問到的操作方法操作方法。vuejs 2.0組件無法訪問與模塊vuex

我的組件:

import {mapGetters, mapActions} from 'vuex' 

export default { 
    computed: mapGetters({ 
    clients: 'clients', 
    fields: 'fields' 
    }), 
    methods: mapActions({ 
    init: 'init' 
    }), 
    created:() => { 
    console.log(this.init) 
    } 
} 

我的模塊:

const state = { 
    'fields': [ 
     { 
      'field': 'name', 
      'label': 'Nom' 
     }, 
     { 
      'field': 'adresse', 
      'label': 'Adresse' 
     }, 
     { 
      'field': 'amount', 
      'label': 'Amount' 
     }, 
     { 
      'field': 'contact', 
      'label': 'Contact' 
     } 
    ], 
    items : [] 
} 

export const SET_CLIENTS = 'SET_CLIENTS' 

const mutations = { 
    [SET_CLIENTS] (state, clients) { 
     state.items = clients; 
    } 
} 

const actions = { 
    init: ({ commit }, payload) => { 
     let clients = [] 
     for(let i = 0; i < 100; i++){ 
      clients.push({ 
       'name': 'Client '+i, 
       'adresse': '14000 Caen', 
       'amount': '1000', 
       'contact': '[email protected]'+i+'.com' 
      }) 
     } 
     commit(SET_CLIENTS, { clients }) 
    } 
} 

const getters = { 
    clients (state) { 
     return state.items; 
    }, 
    fields (state) { 
     return state.fields; 
    } 
} 

export default { 
    state, 
    mutations, 
    getters, 
    actions 
} 

商店創建:

import Vuex from 'vuex' 
import clients from './modules/clients' 
import filters from './modules/filters' 
import Vue from 'vue' 

Vue.use(Vuex) 

export default new Vuex.Store({ 
    modules: { 
    clients, 
    filters 
    } 
}) 

所有項目代碼,請訪問:https://github.com/robynico/vuejs-2.0-modules

如果你測試它,你會看到,init()方法在組件的創建是不明確的。

在此先感謝!

+0

你通過*的意思不能訪問操作方法*?你想如何訪問它們? –

回答

2

我想你是出口你的商店模塊錯了。試試這個:

裏面你module.js

export default { 
    state: {}, // define your state here 
    getter: {}, // define your getters here 
    actions: {}, // define your actions here 
    mutations: {} // define your mutations here 
} 

那麼你的商店裏面:

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

import module from './modules/module.js' 

Vue.use(Vuex) 

const store = new Vuex.Store({ 
    modules: { 
    module // your moudle 
    } 
}) 

export default store 
+0

它不會改變任何東西。我已經這樣做了,所以我在商店中添加了商店創建代碼。 thx – robynico

+0

那麼你可以更新你的問題,因爲它不能被看到你想怎麼稱呼你的行動或你得到的錯誤是什麼 –