2016-12-28 17 views
6

numaralı telefona instance.js numaralı telefondan records_view.js numaralı telefondan erişmek istiyorum. Bu nasıl başarılır?Vuex: Başka Bir Modülden Erişim Durumu

mağaza/modüller//

const state = { 
    // This is what I want to access in records_view.js 
    session: {} 
}; 

const getters = { 
    sessionGetter: state => state.session 
}; 

mağaza/modülleri instance.js Bu ilave bağlam biraz için

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 
    ); 
    } 
}; 

records_view.js.

mağaza/index.js

listenize getters bunu erişmek için aşağıdaki gibi devlet session tanımlamanız gerekir
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 
    } 
}); 

cevap

0

: Bir mutation yazmak zorunda

const state = { 
    session: '' 
} 

, Bu durum değerini ayarlamak için eylemlerinizden çağrılacak. Diğer modüllerin durumuna erişirken, yerel duruma ve rootState numaralı referanslara başvurulmalıdır

+0

Sana burada bahsettiğimiz her şey var. Bir bileşenin içinden oturuma erişebilirim, ancak oturuma başka bir Vuex modülünün içinden (örn. Records_view.js) nasıl erişileceğinden emin değilim. – Donnie

+1

@Donnie try context.rootState.instance.session' – Saurabh

2

:

'contacts:update' ({ commit, rootState }) { 
    console.log('rootState', rootState.users.form) 
    ...... 

    }, 
+0

Bu sorunun cevabını vermesine rağmen, kodun neden referanslarla çalıştığına dair bir açıklama sağlamak her zaman iyidir. –

İlgili konular