我有一个名为“表单”的 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)
, firestoreAction 也不起作用。
提前致谢。我很想知道我在这里不明白什么。