programing

VueX - 액션과는 다른 모듈에서의 디스패치액션

yoursource 2022. 8. 29. 23:15
반응형

VueX - 액션과는 다른 모듈에서의 디스패치액션

사용자 데이터를 클리어하고 싶다logout, 그래서 부터auth모듈 Idispatch모듈에 정의되어 있는 동작ride에러가 표시됩니다.

[vuex] unknown local action type: clearUserData, global type: auth/clearUserData

코드는 다음과 같습니다.

store/displays/auth.displays

export const namespaced = true

export const mutations = {
  clearAuthData(state){
    state.apiToken = null
    state.signedIn = false
  }
}

export const actions = {
  logout({ commit, dispatch }) {
    commit('clearAuthData'))
    dispatch('ride/clearUserData', { root: true })

  }
}

store/disply/ride.disply를 실행합니다.

export const namespaced = true

export const state = {
  data: []
}

export const mutations = {
  CLEAR_USER_DATA(state){
    state.data = []
  }
}

export const actions = {  
  clearUserData({ commit }) {
    commit('CLEAR_USER_DATA')
  }
}

store/store.displays

import * as auth from './modules/auth'
import * as ride from './modules/ride'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    loading: false
  },
  modules: {
    auth,
    ride
  }
})

내가 뭘 잘못하고 있지?

의 사용이 잘못 전달되었습니다.{ root: true }payload를 위한 두 번째 인수입니다.옵션은 세 번째 옵션이어야 합니다.

// dispatch('ride/clearUserData', { root: true }) // FIXME: options passed as payload
dispatch('ride/clearUserData', null, { root: true })

전달할 페이로드가 없는 경우 두 번째 파라미터를null예를 들어 다음과 같습니다.

dispatch('ride/clearUserData', null, { root: true })

언급URL : https://stackoverflow.com/questions/54378118/vuex-dispatch-action-in-a-different-module-from-an-action

반응형