我對 vuejs 非常陌生,正在致力于實現一個可以在任務創建后更新的待辦事項列表。我在包含要更新的文本區域的表中的每一行都有一個子組件,該子組件向父待辦事項列表組件發出一個事件,該事件使用 axios 調用更新方法。我試圖更新的字段是“描述”。子組件代碼:<textarea v-model="task.description" @blur="$emit('update', task)" /><script>export default { props: { task: { type: Object, required: true }父組件代碼:<ChildComponent v-for="task in tasks" :key="task.id" :task="task" :project="project" @delete="deleteTask" @update="updateTask" />...methods: { async updateTask(taskData) { try { await this.$axios.patch(`projects/${taskData.project.id}/tasks/${taskData.id}`) } catch (err) { console.error(err) } }使用 vue devtools chrome 擴展,事件選項卡顯示:name:"update"type:"$emit"source:"<ChildComponent>"payload:Array[1] 0:Object created_at:"2020-07-07 14:01:46" created_by:1 description:"Updated Task Description" id:43 project:Object project_id:1 updated_at:"2020-07-07 14:01:46"但是,以下是我的 api 控制器的 JSON 響應:{"data":{ "id":43, "created_by":1, "project_id":1, "description":"Original Description", "created_at":"2020-07-07 14:01:46", "updated_at":"2020-07-07 14:01:46"}}和任務控制器:$task->update($request->all()); return response()->json([ 'data' => $task, ], 202);目前,文本區域沒有更新或保存到數據庫中。我不知道我錯過了什么。感謝任何幫助,我嘗試實施我在網上找到的內容但沒有成功。
1 回答

函數式編程
TA貢獻1807條經驗 獲得超9個贊
看來您沒有將數據修補到服務器。請嘗試以下操作:
async updateTask(taskData) {
try {
await this.$axios.patch(`projects/${taskData.project.id}/tasks/${taskData.id}`, taskData)
} catch (err) {
console.error(err)
}
}
第二個參數$axios.patch應該是您要發送到服務器的數據。
- 1 回答
- 0 關注
- 134 瀏覽
添加回答
舉報
0/150
提交
取消