Смиренно, я признаю, что получаю от SAVuegram настройки аутентификации для моего приложения.Я использую Firebase onAuthStateChanged
, чтобы убедиться, что пользователь остается во время обновления страницы, однако я совершенно не могу получить доступ к состоянию внутри функции, получая следующую ошибку:
($ store только от меня делает снимок экрана при тестировании "$ store", а также "store" - оба ломаются.)
С включенной строгой отладкой ятакже получать сообщения, предупреждающие меня о мутировании вне обработчиков мутаций, но разве я этим не занимаюсь?
Вот мой магазин / index.js
import Vue from 'vue'
import Vuex from 'vuex'
import fb from '../components/firebase/firebaseInit'
import createLogger from 'vuex/dist/logger'
// import dataRefs from './dataRefs'
// import pageTitle from './modules/pageTitle'
import auth from './modules/auth'
import apps from './modules/applicants'
Vue.use(Vuex)
fb.auth.onAuthStateChanged(user => {
if (user) {
// here I can access the user object but never the following "store"
console.log("FB AUTH", user);
store.commit('setCurrentUser', user)
store.dispatch('fetchUserProfile')
}
});
const debug = process.env.NODE_ENV !== 'production'
const createStore = () => {
return new Vuex.Store({
state: {
pageTitle: '',
currentUser: null,
userProfile: null
},
mutations: {
changePageTitle(state, newTitle) {
state.pageTitle = newTitle
},
changeSnackBarMessage(state, newMessage) {
state.snackBarMessage = newMessage
},
// POPUPS
changeAdvisorAddAppPopupStatus(state) {
state.showAdvisorAddPopup = !state.showAdvisorAddPopup
},
setToken(state, token) {
state.token = token;
},
setUser(state, userObj) {
state.user.email = userObj.email;
state.user.fbUUID = userObj.uuid;
}
},
actions: {
updatePageTitle(vuexContext, newTitle) {
vuexContext.commit('changePageTitle', newTitle);
},
updateSnackBarMessage(vuexContext, newMessage) {
vuexContext.commit('changeSnackBarMessage', newMessage);
},
toggleAdvisorAddPopup(vuexContext) {
vuexContext.changeAdvisorAddAppPopupStatus
},
},
modules: {
auth,
apps
},
strict: debug,
plugins: debug ? [createLogger()] : []
})
};
export default createStore;
К вашему сведению, я также пытался создать экземпляр своего магазина с помощью export const store = new Vuex.Store({
вместо const create ...
метода, но затем Vuex показывает мне, что ни одно из моих состояний, действий, получателей или мутаций даже не найдено.
Спасибо за помощь.