Я хочу , чтобы получить доступ state.session
в instance.js
с records_view.js
. Как это достигается?
магазин / модули / instance.js
const state = {
// This is what I want to access in records_view.js
session: {}
};
const getters = {
sessionGetter: state => state.session
};
магазин / модули / 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
);
}
};
Это для небольшого добавления контекста.
магазин / 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
Донни
источник
источник
из действия:
'contacts:update' ({ commit, rootState }) { console.log('rootState', rootState.users.form) ...... },
источник
Для меня у меня были модули vuex, но мне нужна была мутация, чтобы обновить STATE в другом файле. Смог добиться этого, добавив ЭТО
Даже в модуле вы можете увидеть, к какому глобальному состоянию у вас есть доступ через 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; } }
источник
В моем случае у меня это сработало так.
В файле ModuleA.js:
Module A: export const state = { parameterInA: 'A' } export const action = { showParameterB() { console.log("Parameter B is: " + this.state.B. parameterInB) }
В файле ModuleB:
export const state = { parameterInB: 'B' } export const action = { showParameterA() { console.log("Parameter A is: " + this.state.A.parameterInA) }
Вам нужно будет импортировать ModuleA и B в index.js для корня:
import * as A from 'ModuleA.js' import * as B from 'ModuleB.js'
Таким образом, на параметр состояния можно ссылаться во вложенных модулях.
источник
Вам нужно определить
session
в своем состоянии следующее, чтобы получить к нему доступ в ваших геттерах :const state = { session: '' }
Вы должны написать мутацию , которая будет вызываться из ваших действий для установки этого значения состояния.
источник
context.rootState.instance.session