我用的是打字稿和高级装潢师。
created()钩子中,我调用一个vuex操作listenToDataXY,它本身在一个单独的onSnapshot文件中调用一个函数,其中放置了onSnapshot方法/观察者。onSnapshot回调中修改状态(可以吗?)mutations以不直接访问状态。但我还没有弄清楚如何正确地调用非存储相关文件(api文件)中的突变函数。发布于 2018-12-28 11:40:41
好的,我做了以下工作:
// actions.ts
getDataXY(context) {
context.commit('setLoading', true)
xyAPI.setupXYListener(context)
},
onXYChanged({ commit }, payload) {
commit('setLoading', false)
if (payload.xy) {
commit('setXY', payload.xy)
}
if (payload.err) {
commit('setErrorMessage', payload.err)
}
},// xyAPI.ts
setupXYListener(context: any) {
xyCollection.onSnapshot(
snapshot => {
const xy = snapshot.docs[0].data()
context.dispatch('onXYChanged', { xy: xy, err: null })
},
err => {
context.dispatch('onXYChanged', { xy: null, err: err })
}
)
},如果有人看到一个更好的架构,结构或其他改进,我非常感谢评论。
https://stackoverflow.com/questions/53949800
复制相似问题