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

React中如何通过id删除localStorage存储的数组对象对应条目

实现方案

1. 修改删除逻辑函数

替换原有的基于索引的onRemove方法,改为通过id过滤数组:

const onRemove = (targetId) => {
  // filter会返回排除了对应id条目的新数组,不会修改原状态,符合React immutable规范
  const filteredList = dataAll.filter(item => item.id !== targetId)
  // 直接调用useLocalStorage提供的set方法,会自动同步最新值到localStorage
  setDataAll(filteredList)
}

2. 调整删除按钮的传参

在列表渲染的删除按钮处,传入当前条目的id:

<Button onClick={() => onRemove(singleData.id)}>删除</Button>

冗余代码优化建议

你现有代码中监听dataAll变化手动写入localStorage的useEffect是多余的,useLocalStorage钩子本身已经实现了状态变化自动同步到localStorage的逻辑,这段代码可以直接删除,同时你也不需要再手动调用localStorage.setItem和页面刷新方法,状态更新后React会自动重渲染对应内容。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:57:04