簡體   English   中英

PUT http://localhost:3000/events/undefined 404(未找到)

[英]PUT http://localhost:3000/events/undefined 404 (Not Found)

此代碼通過獲取它的 id 來更新特定的 object。 當我將 id 硬編碼到 API cal 中時,沒有錯誤並且它工作得很好,但是當我將它從新參數中的組件獲取的 id 傳遞到“updateEvent”function 中時,它返回未定義的 id。 我認為問題出在我傳遞的參數中的 vuex 代碼內部

axios 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(() => {});
    },
  }

您的操作從有效負載(第二個參數)中解包/解構idevent ,但您的調度未傳遞 object。 相反,它傳遞的是this.id - 大概是一個String ,它不包含名為idevent的屬性(因此, id在您的 URL 中解析為“未定義”)。

要解決此問題,您的調度應傳遞具有預期屬性的object

//this.$store.dispatch("updateEvent", this.id, this.event); // DON'T DO THIS
this.$store.dispatch("updateEvent", { id: this.id, event: this.event })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM