所以我遇到了一个问题,即为集合创建快照会使我不断收到错误消息:
[vuex] do not mutate vuex store state outside mutation handlers
我的代码如下。我在Vuex存储中有一个Action,可以在firestore中创建集合的快照。导致doc.ref
的问题是造成我的原因。如果我删除此选项,则可以顺利进行突变。但是,如果我离开doc.ref
,则会收到前面提到的错误。
getAllProjects({commit, state}) {
firebase.firestore()
.collection("users")
.doc(state.loggedInUser.id)
.collection("projects")
.onSnapshot(snapshot => {
let projects = []
snapshot.docs.forEach(doc => {
let pr = new Project(doc.ref, doc.id, doc.data().title, doc.data().languages, doc.data().baseLanguage);
projects.push(pr);
})
commit('setProjects', [...projects]);
});
}
突变:
setProjects(state, projects) {
state.projects = projects
},