programing

Vuex 작업에서 Vuex getter로 매개 변수 전달

itsource 2022. 7. 29. 23:39
반응형

Vuex 작업에서 Vuex getter로 매개 변수 전달

애플리케이션의 다양한 컴포넌트에서 호출하는 Vuex getter가 있습니다.다만, Getter를 호출하기 전에 조금 더 복잡한 로직이 필요한 경우가 있기 때문에 Vuex Action을 사용하고 있습니다.액션의 파라미터를 사용하여 getter 함수를 호출하려면 어떻게 해야 합니까?

getter/mutation/action 이름을 붙이는 데 상수를 사용하므로 getter는 다음과 같이 정의됩니다.[GETTER_NAME]: state => param => { return {/.../} }제 Vuex 액션에서는 다음과 같이 getter를 호출하고 싶습니다.getters[GETTER_NAME](someParam)다만, 이것은 동작하지 않는 것 같습니다.getters[GETTER_NAME]함수가 반환됩니다.

컴포넌트에서 게터를 호출하는 것은 완벽하게 작동합니다.나는 단지 창조할 뿐이다.computed기능과 용도...mapGetters({getterName: GETTER_NAME})파라미터로 게터를 호출하려면getterName(someParam).

[GETTER_NAME]: state => param=> {
    return {/.../}
},

[ACTION_NAME]: (context, param) => {
    getters[GETTER_NAME](param)
      ? context.commit(MUTATION_X, param)
      : context.commit(MUTATION_Y, param);
}

getter는 호출되지만 매개 변수를 전달하지 않고 함수를 반환합니다.제가 뭘 잘못했나요? 아니면 Vuex에서 getter가 작동하는 방식을 잘못 알고 있나요?

이렇게 전화하면context.getters[GETTER_NAME](someParam)안에서.actions여기서.

[GETTER_NAME]: state => param=> {
return {/.../}
},

[ACTION_NAME]: (context, param) => {
   context.getters[GETTER_NAME](param)
     ? context.commit(MUTATION_X, param)
     : context.commit(MUTATION_Y, param);
}

액션에 파라미터가 삽입되었습니다.dispatch,commit,getters그리고.rootState따라서 다음과 같이 getter에 액세스할 수 있습니다.

ACTION_NAME: ({ commit, getters }, payload) => {
    let MY_VARIABLE = getters.GETTER_NAME(payload)
    console.log(MY_VARIABLE)
}

이것은 다른 모듈에서 getter에 접속하려고 해도 정상적으로 동작합니다.getters with context를 사용할 수 있지만context.getters이렇게 사용하면 동작 내에서 구문이 약간 길어집니다.

언급URL : https://stackoverflow.com/questions/54231197/passing-parameters-to-vuex-getters-from-a-vuex-action

반응형