불기지를 설치하다.vuex의 사용자가 영구 루프를 발생시킵니다.
업데이트: 이 오류는 vuex strict 모드를 사용하도록 설정한 경우에만 발생합니다.
파이어베이스 인증을 사용하여 Vue 애플리케이션을 구축하고 있는데 응용 프로그램이 실패하고 다음 오류 메시지가 표시됩니다.
[Vue warn] :watcher "function ( )에 대한 콜백 오류입니다. { 반환됩니다._data.$state}: "오류: [vuex] 변환 핸들러 외부에 있는 vuex 저장소 상태를 변환하지 않습니다."
오류: [vuex] 변환 핸들러 외부의 vuex 저장소 상태를 변환하지 않습니다.
Uncaughed RangeError: 최대 콜 스택 크기를 초과했습니다.
main.ts 파일의 Vuex 스토어에 사용자를 커밋하면 오류가 발생합니다.
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에서 실제로 변환이 발생하고 사용자가 스토어에 커밋된 것을 알 수 있지만 왜 이 오류가 발생하는지 알 수 없습니다.좀 도와 줄래요?
어플리케이션의 거의 모든 것을 코멘트하려고 했습니다만, 문제의 원인이 되는 것은 이것뿐입니다.
가게user.toJSON()
당신의 주(州에서.Firebase 사용자는 vuex 상태로 저장해서는 안 되는 복잡한 개체입니다.
내 생각엔 네가 싸야 할 필요가 있을 것 같아.firebase.auth().onAuthStateChanged
에 있어서new Promise
.
https://forum.vuejs.org/t/vue-routes-firebase-auth-sync-problem/4470#post2 의 예를 참조해 주세요.
언급URL : https://stackoverflow.com/questions/55228739/setting-firebase-user-in-vuex-results-in-eternal-loop
'programing' 카테고리의 다른 글
MinGW란 무엇인가에 대한 간단한 설명 (0) | 2022.07.21 |
---|---|
Vuex: 서로 다른 모듈 내 공유 네스트 모듈(복제 없음) (0) | 2022.07.21 |
포인터 p의 경우 극단적인 경우 p < p+1이 false일 수 있습니까? (0) | 2022.07.21 |
할당에 대한 Python ?(조건부/삼진수) 연산자 (0) | 2022.07.21 |
String 개체 목록을 연결하는 가장 좋은 방법? (0) | 2022.07.21 |