ОБНОВЛЕНИЕ: эта ошибка возникает только при включенном строгом режиме vuex
Я создаю приложение Vue с аутентификацией firebase, но приложение завершается ошибкой со следующими сообщениями об ошибках:
[Vue warn]: ошибка в обратном вызове для наблюдателя "function () {return this._data. $$ state}": "Ошибка: [vuex] Не изменять состояние хранилища vuex вне обработчиков мутаций."
Ошибка:[vuex] Не изменять состояние хранилища vuex вне обработчиков мутаций.
Uncaught RangeError: Превышен максимальный размер стека вызовов
Ошибка возникает, когда я фиксирую пользователя в моем хранилище Vuex в моемФайл main.ts:
firebase.auth().onAuthStateChanged(user => {
if (user) {
store.commit(constants.auth.SET_USER, user) // THIS LINE
store.commit(constants.auth.SET_AUTHENTICATED, true)
router.push('/')
} else {
store.commit(constants.auth.SET_USER, null)
store.commit(constants.auth.SET_AUTHENTICATED, false)
router.push('/signup')
}
if (!app) {
app = new Vue({
router,
store,
render: (h) => h(App),
}).$mount('#app')
}
})
Вот моя мутация:
[constants.auth.SET_USER](state: AuthState, payload: firebase.User): void {
state.user = payload
}
Я могу сказать от Vue devtools, что мутация действительно происходит, и что пользователь фиксируется в хранилище, но я понятия не имею, почему эта ошибка происходит.Вы можете мне помочь?
Я пытался закомментировать почти все остальное в приложении, и это единственные части, которые вызывают какие-либо проблемы.