具有Firebase DocumentReference的Nuxt / Vuex对象导致[vuex]不会在突变处理程序之外对vuex存储状态进行突变

时间:2020-07-21 07:38:28

标签: firebase vue.js google-cloud-firestore vuex nuxt.js

所以我遇到了一个问题,即为集合创建快照会使我不断收到错误消息:

[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
},

0 个答案:

没有答案