1
私は1つのモジュール(javascriptファイル)をvueコンテキスト外に持っています。私はこのjavascriptファイルからアクションをディスパッチする必要があります。出来ますか ?はいの場合は、どうですか?vueコンポーネントではなくjavascriptファイルからアクションをディスパッチする方法はありますか?
jsfile.js(Javascriptのファイル)
const detail = {};
detail.validateLocation = (location) => {
// need to dispatch one action from here.
// dispatch('SET_LOCATION', {city: 'California'})
// how to dispatch action ?
}
export default detail;
export default {
SET_LOCATION: ({ commit}, data) => {
commit('SET_LOCATION', data);
},
}
action.js store.js
import Vue from 'vue';
import Vuex from 'vuex';
import actions from './actions';
import mutations from './mutations';
import getters from './getters';
export function createStore() {
return new Vuex.Store({
modules: {},
state: {
location: null
},
actions,
mutations,
getters,
});
}
私は次のようにしています: import {createStore} from '../store'; const store = createStore(); store.dispatch( 'SET_LOCATION'、{city: 'California'}); でも動作していません –
@MukundKumarしないでください。単に './store"からストアをインポートします。ストアを作成するために関数をエクスポートする必要はありません。ストアをインポートするだけです。作成関数をエクスポートして複数のファイルにストアを作成すると、複数のストアが終了します。 – Bert
私は新しいVuex.Store()をcreateStore関数でラップしています。それはうまくいくはずです。 –