Ich möchte den Zugang state.session
in instance.js
von records_view.js
. Wie wird das erreicht?
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
);
}
};
Dies ist für ein wenig zusätzlichen Kontext.
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
quelle
quelle
von einer Aktion:
'contacts:update' ({ commit, rootState }) { console.log('rootState', rootState.users.form) ...... },
quelle
Für mich hatte ich Vuex-Module, brauchte aber eine Mutation, um STATE in einer anderen Datei zu aktualisieren. Konnte dies durch Hinzufügen von DIESEM erreichen
Sogar im Modul können Sie sehen, auf welchen globalen Status Sie über console.log (this.state) zugreifen können.
const mutations = { MuteChangeAmt(state, payload) { //From user module; Need THIS keyword to access global state this.state.user.payees.amount = payload.changedAmt; } }
quelle
In meinem Fall hat das bei mir so funktioniert:
In der Datei ModuleA.js:
Module A: export const state = { parameterInA: 'A' } export const action = { showParameterB() { console.log("Parameter B is: " + this.state.B. parameterInB) }
In der Datei ModulB:
export const state = { parameterInB: 'B' } export const action = { showParameterA() { console.log("Parameter A is: " + this.state.A.parameterInA) }
Sie müssen ModuleA & B in die index.js für den Stamm importieren:
import * as A from 'ModuleA.js' import * as B from 'ModuleB.js'
Auf diese Weise kann auf Statusparameter in Untermodulen verwiesen werden. Hoffe das hilft.
David
quelle
Sie müssen
session
in Ihrem Bundesstaat Folgendes definieren, um in Ihren Gettern darauf zugreifen zu können :const state = { session: '' }
Sie müssen eine Mutation schreiben , die von Ihren Aktionen aufgerufen wird, um diesen Statuswert festzulegen.
quelle
context.rootState.instance.session