You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现删除API对象后自动重新渲染页面,无需手动刷新?

解决删除后无需刷新更新组件的问题

你的问题根源在于删除操作完成后,既没有更新本地的apiData状态,调用history("/notes")也不会触发组件重新渲染(因为已经处于该路由)。以下是两种可行的解决方法:

方法一:删除后直接更新本地状态(推荐)

删除成功后,通过过滤本地数据中已删除的项来更新状态,无需再次请求API,效率更高:

const onDelete = (id) => {
  axios
    .delete(`https://6390acc765ff4183111b53e9.mockapi.io/notes/${id}`)
    .then(() => {
      // 过滤掉id匹配的项,更新本地状态
      setApiData(prevData => prevData.filter(item => item.id !== id));
    });
};

方法二:删除后重新请求最新数据

如果担心本地状态和服务器数据不一致,可以在删除成功后重新调用API获取完整数据:

const onDelete = (id) => {
  axios
    .delete(`https://6390acc765ff4183111b53e9.mockapi.io/notes/${id}`)
    .then(() => {
      // 重新获取最新的笔记列表
      axios.get(`https://6390acc765ff4183111b53e9.mockapi.io/notes`)
        .then(getData => setApiData(getData.data));
    });
};

另外,你可以删除原来的history("/notes")代码,因为它在当前路由下不会产生任何效果。

内容的提问来源于stack exchange,提问作者Wise.Wolf

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 20:15:33