source

Nuxt에서는 한 모듈의 Vuex 상태를 다른 모듈에서 변환하려면 어떻게 해야 합니까?

goodcode 2022. 7. 23. 14:11
반응형

Nuxt에서는 한 모듈의 Vuex 상태를 다른 모듈에서 변환하려면 어떻게 해야 합니까?

포털에서 여러 가지 이야기를 해봤지만, 효과가 없는 것 같기 때문에, 여기에 투고해 회피책을 찾고 있습니다.

2개의 모듈이 내장되어 있습니다.Nuxtjs응용 프로그램 폴더store\modules:ModuleA그리고.ModuleB에 대한 검증이 필요합니다.ModuleB액세스 하고 싶다state부터ModuleA무슨 이유에선지 실패하고 있어요

나는 노력했다.rootScope,import제겐 효과가 없었어요.

나의state/modules/ModuleA.js:

export const state = () => ({
  eventType: 'MyEvent',
})

export const mutations = {
  eventTypePopulator (state, event) {
    state.eventType = event
  },
}

나의state/modules/ModuleB.js:

export const state = () => ({
  input: {}
})

export const mutations = {
  jsonPreparation ({state, rootState}, payload) {
    console.log(rootState.eventType)
    // console.log($store.state.ModuleA.eventType)
  }
}

Import를 시도했습니다.ModuleA안으로ModuleB사용했지만, 그것 또한 나에게 효과가 없었다.누가 좀 도와주실 수 있나요?state하나에서Module다른 곳에서Module이내에Nuxtjs/Vuejs

API 레퍼런스에 나타난 바와 같이rootState에서 입수할 수 있습니다.actions그리고.getters.
직접 사용할 수 있는 방법은 발견되지 않았습니다.mutation.

한편, 이것은 param으로서 param으로 전달함으로써 달성할 수 있습니다.mutation이것처럼.

ModuleB.js

const mutations = {
  NICE_TASTY_MUTATION: (_state, { rootState, payload }) => {
    // _state is not used here because it's moduleB's local state
    rootState['moduleA'].eventType = payload
  },
}

const actions = {
  async myCoolAction({ commit, rootState }, { ...}) {
    commit('NICE_TASTY_MUTATION', {
      rootState,
      payload: 'some-stuff'
    })
  }
}

그리고 이건 '아저씨'라고 불릴 수 있습니다..vue이와 같은 것을 철하다

methods: {
  ...mapActions('ModuleB', ['myCoolAction']),
}

...
await this.myCoolAction()

PS: IMO 규약은 파일 이름을 붙이는 것에 더 가깝습니다.module_b.js.

언급URL : https://stackoverflow.com/questions/69133561/in-nuxt-how-to-mutate-a-vuex-state-in-one-module-from-the-other

반응형