You need to enable JavaScript to run this app. React应用中如何将MongoDB列表点击项ID传递给axios.delete实现删除
优惠活动
大模型
产品
解决方案
定价
更多

React应用中如何将MongoDB列表点击项ID传递给axios.delete实现删除

实现删除功能的修改步骤

前端修改(ExpensesListItem.tsx)

你已经在组件props中拿到了对应条目的item._id,直接将ID拼接到DELETE请求的URL中即可,推荐先请求接口成功后再修改本地状态,避免前后端数据不一致:

// 仅展示修改后的DeleteListItem函数,其余代码保持不变
const DeleteListItem = () => {
    // 把条目ID拼到请求URL末尾
    axios.delete(`http://localhost:4000/app/expenseslist/${item._id}`)
    .then(() => {
        // 接口请求成功后再更新本地列表
        setExpenseAndAmountList(expenseAndAmountList.filter(el => el._id !== item._id));
    })
    .catch(function (error) {
        console.log(error);
    });
}

后端修改(routes.js)

原来的删除路由没有定义ID参数位,因此无法通过request.params.id拿到传递的ID,同时异步接口不适合用redirect跳转,调整为返回JSON响应更合理:

// 修改删除路由,添加:id参数占位
router.delete('/expenseslist/:id', (request, response) => {
    ExpenseAndAmountTemplate.findByIdAndRemove(request.params.id, function(err){
        if(err){
            response.status(500).json({message: "删除条目失败", error: err});
        } else {
            response.status(200).json({message: "条目删除成功"});
        }
     });
});
// 原有post路由无需修改

内容的提问来源于stack exchange,提问作者rumon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 06:45:03