programing

이 구조 Vuex에서 실행 중인 약속을 사용할 수 있는 방법이 있습니까?

starjava 2023. 7. 1. 07:56
반응형

이 구조 Vuex에서 실행 중인 약속을 사용할 수 있는 방법이 있습니까?

구성 요소에서 양식 제출 시 실행되는 작업이 있습니다.

this.$store.dispatch('registerAction', this.registerData);

또한 이 구성 요소에서 "등록이 성공했습니다"와 같은 메시지를 표시합니다.그것을 위해 나는 나의 재산을 듣고 싶습니다.this.$store.state registerSuccess기본적으로 거짓입니다.

registerAction(Vuex)

  return this.api.registerUser()
       .then(response => {
          if(response.success) {
               return store.dispatch('registerSuccess');
          }
          return store.dispatch('registerFail');
       });

registerSuccess돌연변이 집합state.registerSuccess = true;(실패로 인해 거짓으로 설정됨)

질문:.

변경 내용을 수신하려면 어떻게 해야 합니까?state.registerSuccess이 경우에?계산에 넣으면 false가 반환됩니다.Vuex 스토어에서 다음과 같이 변경됩니다.true

computed: {
        registerSuccess() {
            console.log(this.$store.state.registerSuccess)
            return this.$store.state.registerSuccess;
        }
    },

아까 말씀하셨잖아요.registerSuccess이다.mutation그것은 또한 당신이 그것을 내부에 넣었다는 것을 의미합니다.mutation다음과 같은 저장소 개체 내 속성:

  {
    state: {
      registerSuccess: false
    },
    mutations: {
      registerSuccess(state) {
        state.registerSuccess = true;
      }
    }
  }

이 경우 를 사용하여 다음을 실행해야 합니다.registerSuccess돌연변이

코드는 다음과 같아야 합니다.

return this.api.registerUser()
            .then(response => {
                if(response.success) {
                    return store.commit('registerSuccess');
                }
                return store.commit('registerFail');
            });

언급URL : https://stackoverflow.com/questions/51853410/is-there-a-way-to-use-promise-in-action-with-this-structure-vuex

반응형