programing

nuxt 앱 내의 Vuex가 "변환 핸들러 외부에 vuex 스토어 상태를 변환하지 않음!"을 슬로우합니다.

newsource 2022. 8. 11. 22:40

nuxt 앱 내의 Vuex가 "변환 핸들러 외부에 vuex 스토어 상태를 변환하지 않음!"을 슬로우합니다.

NUXT 앱에서 vuex 스토어 모듈을 사용하고 있습니다!앱을 실행하고 전화를 걸면

this.$store.dispatch('userStore/setLoggedInUser',currentUser); //default.vue

무한 루프되는 "변환 핸들러 외부의 vuex 스토어 상태를 변환하지 않음"이라는 오류가 표시됩니다.

모듈은 다음과 같습니다.

const actions = {
  setLoggedInUser({commit},currentUser){
    return new Promise((resolve,reject)=>{
      commit('mutateLoggedInUser',currentUser);
      resolve();
    });
  }
}

const mutations = {
  mutateLoggedInUser(state,user){
    state.loggedInUser = user;
  }
}

나는 해결책을 찾았다.store/index.js 파일에서 strict 모드를 false로 설정하면 오류가 사라집니다.

export const strict = false

하지만 이것은 진부한 해결책으로 보이며 나는 무슨 일이 일어나고 있는지 정말 이해할 수 없다.이게 NUXT의 버그인가요 아니면 제가 Vuex 스토어에서 이상한 짓을 하고 있는 건가요?

일반적으로 이 오류는 무한 업데이트 루프를 일으키는 전달된 값을 보고 있을 때 발생하지만 보고 있지 않을 경우 복사본이 아닌 원래 값을 전달했기 때문일 수 있습니다.

변경 시도:state.loggedInUser = user로.state.loggedInUser = user.slice()또는this.$store.dispatch('userStore/setLoggedInUser',currentUser.slice())

언급URL : https://stackoverflow.com/questions/51686555/vuex-inside-nuxt-app-throws-do-not-mutate-vuex-store-state-outside-mutation-han