希望你能提供帮助
我正在通过vuex模块操作向firebase后端做一个axios帖子,但是当我尝试推送我的结果来同步商店时,我收到以下错误
todos is not defined
我已经检查了一切,直到知道我的待办事项确实包含了我想要在变异中添加到数组中的对象,但不知道为什么todos会被定义?
在我的商店里我有
import axios from "axios";
// *** STATE ***
export const state = () => ({
todos: []
})
// *** MUTATIONS ***
export const mutations = {
// add new todo to todos array
add(state, todo ) {
state.todos.push({todo})
// this is where my error is todos is not defined
},
export const actions = {
addPost(context, todo) {
const createdPost = {
...todo
}
axios.post("http", createdPost)
.then(result => {
context.commit('add', {...createdPost, id: result.data.name})
console.log(createdPost) // this returns the object I expect to get from firebase with the added ID
})
.catch(e => console.log(e));
},
}
export const getters = {
todos(state) {
return state.todos
}
}
我应该添加当我最初使用以下操作获取数据时,我正在将axios对象转换为数组
loadData ({ commit, context }) {
return axios.get('http')
.then(res => {
const converttodo = []
for (const key in res.data) {
converttodo.push({ ...res.data[key], id: key })
}
// console.log(converttodos)
commit('setTodos', converttodo)
})
//.catch(e => context.error(e));
},
这表现得如预期。
非常感谢