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

React中Reducer更新列表组件异常:多Package时删元素致其他Package清空

React状态管理问题求助

背景

自学React,做产品列表管理组件:

  • 列表由LabelsReducer负责增删改操作
  • 列表项包含单个Label组件,或是作为分组的GroupLabel组件
  • GroupLabel的内容由GroupReducer单独管理

预期流程

  • 通过主Reducer向列表添加Package(即分组)
  • 列表状态同步更新
  • 通过GroupReducer为Package添加元素,借助useEffect同步更新主列表
  • 删除Package内元素时,若Package为空,则通过主Reducer将其从列表移除

当前问题

添加两个含元素的Package后,删除第一个Package的所有元素,第一个Package被正常移除,但第二个Package的内容也变成空数组,未保留原有元素。

已观察现象

  • 第二个Package的内容会变为GroupReducer的初始状态
  • 删除第二个Package的元素时,第一个Package不受影响,符合预期
  • 移除“Package为空则删除”的条件后,第二个Package不会被修改

核心代码文件

  • /src/hook/LabelsReducer.js(主列表Reducer)
  • /src/hook/GroupReducer.js(分组Reducer)
  • /src/App/FilterLabel/Label.js(元素组件)
  • /src/App/FilterLabel/GroupLabel.js(分组组件)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 20:05:03