IT이야기

Vuex, 루트 게이터에서 이름보다 앞선 모듈 게이터를 사용할 수 없는가?

cyworld 2022. 5. 16. 21:06
반응형

Vuex, 루트 게이터에서 이름보다 앞선 모듈 게이터를 사용할 수 없는가?

루트 게터, vuex에서 name upted module getter를 사용할 수 없음.

안녕, 얘들아.

내 루트 상태에 게터가 있는데, 이 게이터는 모듈(필터)에서 다른 게터(getFilteredSpecialItems)를 참조해야 해.나는 루트게이터에 대해 알고 있다.vue 구성 요소에서 필터/getFilteredSpecialItems를 참조할 수 있으므로, 지금까지 작동하고 있다.

뿌리 상태

const getters: {
  getSortedList: (state, getters, rootState, rootGetters) {
    ...
      console.log(getters);
    console.log(rootGetters);
    console.log(getters.getFilteredSpecialItems);
    console.log(rootGetters.getFilteredSpecialItems);
    console.log(getters.filter.getFilteredSpecialItems);
    console.log(rootGetters.filter.getFilteredSpecialItems);
    ...
    }
}

필터 모듈

const state: {
  namespaced: true
  ...
}

const getters: {
  getFilteredSpecialItems: (state, getters, rootState) => {
    ....
  }
}

폴더 구조

store
| index.js
| getters.js
| mutations.js
| actions.js
| state.js
| filter (dir)
| \
| | index.js
| | getters.js
| | mutations.js
| | actions.js
| | state.js

둘 다 Getter와 rootGetters가 필터 모듈을 등록했다(1차 및 2차).console.log):

줍는 사람들 줍는 사람들

루트겟터 루트겟터

3번과 4번 console.log이다undefined, 5. 6. 에러를 던진다, 왜냐하면getters.filter그리고rootGetters.filter이다undefined그래서 그들은 어떤 재산도 가지고 있지 않다.

어떻게 하면 내가 그것을 얻을 수 있을까?getFilteredSpecialItems뿌리 안쪽에getSortedList게터?

나는 어떤 종류의 도움이나 조언도 고맙게 생각한다.고맙다.

다음과 같은 이름 앞잡이에 액세스해야 한다.

rootGetters['filter/getFilteredSpecialItems']

이와 같지 않음(상태와 다름):

rootGetters.filter.getFilteredSpecialItems

같은 모듈에 있는 다른 getter로부터, 당신은 이것을 할 수 있어야 한다.

getters.getFilteredSpecialItems

만약 그것이 돌아온다면undefined그럼 아마 너의 게터가 돌아올거야undefined? 마지막 통화 이후 게터 함수 내에서 관측 가능한 데이터가 변경되지 않은 경우 마지막 반환 값이 캐시될 수 있다는 점을 염두에 두고 실제로 호출되고 있는지 확인하십시오.

참조URL: https://stackoverflow.com/questions/57408836/vuex-namepaced-module-getters-not-available-in-root-getter

반응형