programing

두 개의 명명된 vuex 모듈 간에 작업을 디스패치하는 방법이 있습니까?

shortcode 2022. 7. 11. 22:26
반응형

두 개의 명명된 vuex 모듈 간에 작업을 디스패치하는 방법이 있습니까?

네임 스레드 모듈 간에 액션을 디스패치할 수 있습니까?

예: vuex 모듈 "게임보드" 및 "알림"이 있습니다.각각 이름표시가 되어 있습니다.게임보드에서 알림 모듈로 액션을 보내고 싶습니다.

디스패치 액션명에는 다음과 같이 모듈명을 사용할 수 있다고 생각했습니다.

// store/modules/gameboard.js
const actions = {
    myaction ({dispatch}) {
        ...
        dispatch('notification/triggerSelfDismissingNotifcation', {...})
    }
}

// store/modules/notification.js
const actions = {
    triggerSelfDismissingNotification (context, payload) {
        ...
    }
}

그러나 이렇게 하려고 하면 오류가 발생하여 vuex가 게임보드 모듈 내에서 액션을 디스패치하려고 합니다.

[vuex] 알 수 없는 로컬 작업 유형: 알림/트리거셀프 디스미스 알림, 글로벌 유형: 게임보드/알림/트리거셀프 디스미스 알림

vuex 모듈에서 모듈로 디스패치하는 방법이 있나요?아니면 루트 vuex 인스턴스에 일종의 브릿지를 작성해야 합니까?

루트 컨텍스트에서 디스패치하도록 지정하기만 하면 됩니다.

// from the gameboard.js vuex module
dispatch('notification/triggerSelfDismissingNotifcation', {...}, {root:true})

이제 디스패치가 루트에 도달하면 알림 모듈에 대한 올바른 네임스페이스 경로가 생성됩니다(루트 인스턴스에 대한 상대).

이것은, 다음의 설정을 실시한다고 가정하고 있습니다.namespaced: truevuex 스토어 모듈로 이동합니다.

dispatch('mobuleB/actionB', null, {root: true})

out params로 트리거하려면 다음을 사용합니다.

dispatch('mobuleB/actionB', null, { root: true })

또, 이하와 같이 됩니다.

params use dispatch('mobuleB/actionB', {param}, { root: true })

언급URL : https://stackoverflow.com/questions/42984132/is-there-a-way-to-dispatch-actions-between-two-namespaced-vuex-modules

반응형