반응형
Vuex에 있는 다른 이름의 getters에 액세스하는 방법
나는 '양식'이라는 이름의 Vuex 모듈을 가지고 있다.나는 '사용자'라는 이름의 다른 (이름도 앞지르는) 모듈을 가지고 있다.
나는 Vuexfire를 사용하고 있다. (처음, 내가 생각하는 것은 나를 흥분시키는 것이다.)그리고 다음과 같은 조치를 취하십시오.
const actions = {
loadPendingHoursRequests: firestoreAction((context) => {
context.bindFirestoreRef('pendingHoursRequests', db.collection('hours')
.where('submittedToUID', '==', "iTd865JKWXRmhz2D2mtW7KIpL7a2"))
}),
이것은 예상대로 작동하며, Firestore와 Vuex 사이에 실시간 연결을 생성한다.문제는 "iTd865JKWXRMhz2D2mtW7KIPL7a2"가 '사용자' 모듈에서 도출된 동적 값이 되기를 원한다는 것이다.
난 그냥 완전히 길을 잃었어.이렇게 리팩터링하면:
loadPendingHoursRequests ({ dispatch, commit, getters, rootGetters }) {
let uid = rootGetters['users/currentUserUID'];
console.log(uid)
firestoreAction((context) => {
context.bindFirestoreRef('pendingHoursRequests', db.collection('hours').where('submittedToUID', '==', uid))
})
}
위의 console.log가 '정의되지 않음'을 반환함그리고 만약 내가 그것을 제거한다고 해도.where('submittedToUID', '==', uid)
, 소방관Action은 어쨌든 작동하지 않는다.
미리 고맙다.내가 이해하지 못하는 것이 무엇인지 알고 싶다.
테스트되지 않음(VuexFire를 사용하지 않음) 그러나bindFirestoreRef
이 필요하다context
객체, 액세스할 수 있음rootGetters
그 소유물로도 말이야두 개의 스니펫을 합치면 이렇게 된다.
const actions = {
loadPendingHoursRequests: firestoreAction((context) => {
const uid = context.rootGetters['users/currentUserUID'];
context.bindFirestoreRef('pendingHoursRequests', db.collection('hours')
.where('submittedToUID', '==', uid))
})
}
반응형
'programing' 카테고리의 다른 글
필요한 조언:익스프레스 기능이 있는 VueJS 풀스택 앱 - 백엔드(서버)에서 2개의 스토어, 별도의 Vue 앱 또는 관리자용 익스프레스 app를 사용해야 함 (0) | 2022.04.11 |
---|---|
vuex 작업의 오류를 vue 구성 요소로 전파하는 방법 (0) | 2022.04.11 |
Vue JS - v-for 내부에서 모델링할 선택 옵션 값 바인딩 (0) | 2022.04.11 |
Vuex axi에서 어레이 업데이트 발생 (0) | 2022.04.11 |
프로덕션 빌드에서 js 및 css 파일의 파일 경로 변경 (0) | 2022.04.11 |