Saya ingin akses state.session
di instance.js
dari records_view.js
. Bagaimana ini tercapai?
store / modules / instance.js
const state = {
// This is what I want to access in records_view.js
session: {}
};
const getters = {
sessionGetter: state => state.session
};
store / modules / records_view.js
const actions = {
getSettingsAction (context, props) {
// This is how I'm trying to access session, which doesn't work
let session = context.state.instance.session;
Api(
context,
{
noun: props.noun,
verb: 'GetRecordsViewSettings',
orgUnitKey: _.has(session, 'orgunit.key') ? session.orgunit.key : '',
data: {}
},
props.callback
);
}
};
Ini untuk sedikit konteks tambahan.
store / index.js
import Vue from 'vue';
import Vuex from 'vuex';
import * as actions from './actions';
import * as getters from './getters';
import * as types from './mutation-types';
import instance from './modules/instance';
import recordsView from './modules/records_view';
Vue.use(Vuex);
export default new Vuex.Store({
state,
actions,
getters,
mutations,
modules: {
instance,
recordsView
}
});
javascript
vue.js
vuex
Donnie
sumber
sumber
dari suatu tindakan:
'contacts:update' ({ commit, rootState }) { console.log('rootState', rootState.users.form) ...... },
sumber
Bagi saya, saya memiliki modul vuex, tetapi membutuhkan mutasi untuk memperbarui STATE di file yang berbeda. Mampu mencapai ini dengan menambahkan INI
Bahkan dalam modul Anda dapat melihat status global apa yang Anda miliki aksesnya melalui console.log (this.state)
const mutations = { MuteChangeAmt(state, payload) { //From user module; Need THIS keyword to access global state this.state.user.payees.amount = payload.changedAmt; } }
sumber
Dalam kasus saya, begitulah cara kerjanya untuk saya.
Dalam file ModuleA.js:
Module A: export const state = { parameterInA: 'A' } export const action = { showParameterB() { console.log("Parameter B is: " + this.state.B. parameterInB) }
Dalam file ModuleB:
export const state = { parameterInB: 'B' } export const action = { showParameterA() { console.log("Parameter A is: " + this.state.A.parameterInA) }
Anda perlu mengimpor ModuleA & B di index.js untuk root:
import * as A from 'ModuleA.js' import * as B from 'ModuleB.js'
Dengan cara ini, parameter status dapat direferensikan silang dalam sub modul.
sumber
Anda perlu menentukan
session
di negara bagian Anda seperti berikut, untuk mengaksesnya di getter Anda :const state = { session: '' }
Anda harus menulis mutasi , yang akan dipanggil dari tindakan Anda untuk menyetel nilai status ini.
sumber
context.rootState.instance.session