这段代码通过获取一个特定对象的id来更新它。当我把id硬编码到API cal中时,没有任何错误,而且工作得很好,但是当我把从组件中获取的id作为一个新的参数传递到'updateEvent'函数中时,它返回了未定义的id.我认为问题出在我传递的参数中的vuex代码中。
斧头API调用
updateEvent(id, event) {
return apiClient.put(`/events/${id}`, event)
}
和在vuex行动中
updateEvent({
commit,
dispatch
}, {
id,
event
}) {
return EventService.updateEvent(id, event)
.then(() => {
commit('UPDATE_EVENT', event)
})
}
我在我的组件中这样发送它
methods: {
updateEvent() {
this.$store
.dispatch("updateEvent", this.id, this.event)
.then(() => {
this.$router.push({
name: "EventShow",
params: { id: this.id },
});
})
.catch(() => {});
},
}
你的操作 unpacksdestructures id
和 event
的第2个参数),但你的调度并没有传递一个对象。相反,它传递的是 this.id
-- 大概是一个 String
的属性,其中不包含名为 id
或 event
(因此。id
解析为 "undefined")。)
为了解决这个问题,您的调度应该通过一个叫做 对象 具有预期的特性。
//this.$store.dispatch("updateEvent", this.id, this.event); // DON'T DO THIS
this.$store.dispatch("updateEvent", { id: this.id, event: this.event })