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
'programing' 카테고리의 다른 글
$http로 파일을 보내는 방법.Vue에 투고합니다.Js (0) | 2022.07.29 |
---|---|
NuxtJ를 사용하여 네이티브 Vue 앱을 만들 수 있습니까?s (0) | 2022.07.29 |
Vue 메타가 업데이트를 가져오지 않음 (0) | 2022.07.29 |
Vuex에서 이를 바인드한 후 콜백하는 방법 (0) | 2022.07.29 |
Vue CLI 버전을 확인하려면 어떻게 해야 합니까? (0) | 2022.07.29 |