2017-05-18 13 views
4

私はvuexを試していると私は私がこのような何かを終了し、私のvuexファイル整理するための最良の方法を模索していました:vuex:不明ゲッター:ユーザー

/src/store/user/state.js:

export default { 
    state: { 
    user: null 
    } 
} 

/src/store/user/getters.js:

export default { 
    getters: { 
    user (state) { 
     return state.user 
    } 
    } 
} 

/src/store/user/mutations.js:

export default { 
    mutations: { 
    'SET_USER' (state, user) { 
     state.user = user 
    } 
    } 
} 

/src/store/user/actions.js

export default { 
    actions: { 
    loginUser ({ commit }, params) { 
     commit('SET_USER', {id: 1}) 
    } 
    } 
} 

/src/store/user/index.js

import state from './state' 
import getters from './getters' 
import actions from './actions' 
import mutations from './mutations' 

export default { 
    state, 
    getters, 
    actions, 
    mutations 
} 

/src/store/index.js:

import Vue from 'vue' 
import Vuex from 'vuex' 
import user from './user' 

Vue.use(Vuex) 

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

コードをロードすると、エラーが発生してコンソールに戻ります。

vuex: unknown getter: user 
ユーザー関連のファイルの
+1

をあなたはSRC /店舗/ユーザーに何がありますか? – thanksd

+0

src/store/userには、state.js、getters.js、mutations.js、actions.js、index.jsの5つのファイルがあります。 Theeseファイルの内容は問題になります。 –

+1

あなたの/src/store/index.jsにあります。あなたはユーザーモジュールをインポートしています。モジュールのパスは './user/index'にする必要があります。 /src/store/user/index.jsに状態、ゲッター、変異、アクションをエクスポートしているためです。 –

答えて

5

それぞれは、あなたがそれらのファイルをインポートするとき、あなたは、gettersstateエクスポートされるオブジェクト全体を命名されることを意味し、export defaultを使用しているなど

ので、stateindexの範囲、で変数にはstateという名前のプロパティがあり、gettersにはgettersというプロパティがあります。これは物事を投げ捨てています。

あなたが代わりにこれらのファイルごとにconstをエクスポートする必要があります。

import { state } from './state' 

を別の方法として、あなただけの削除ができますので、のような名前のconstつかむインポートするときに

export const state = { 
    user: null, 
} 

とを各ファイルのstate,gettersなどのプロパティ:

その後、
// state.js 
export default { 
    user: null, 
} 

そして、あなたはすでにやっているようにインポートします。

import state from './state' 
+0

私はこのようにします。アプリケーションを実行すると、次のような警告メッセージが表示されます: '' './src/store/user/index.js 7:9-14"エクスポート 'デフォルト('状態 'としてインポート)が見つかりませんでしたである。/状態 ' ./src/store/user/index.js 8:11-18 "エクスポート'デフォルト( 'getters'としてインポート)が './getters'に見つかりません ./src/store/user /index.js 9:11-18 "エクスポート 'デフォルト'( 'アクション'としてインポート)が './actions'に見つかりません ./src/store/user/index.js 10:13-22" –

+0

store/user/index.jsのインポートを次のように変更しました: '' 'import {state} '' 。/ state''''からすべてが動作します。ありがとうございました。 –

関連する問題