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

如何解决NextUI表格多复选框列选中状态丢失及持久化问题?

NextUI表格复选框选中状态丢失问题解决办法

你遇到的问题核心是状态更新依赖了旧的state快照:React的useState更新是异步批量处理的,你的onValueChange回调里直接使用usersData(当前渲染周期的旧状态)生成新数组,当连续点击多个复选框时,后续更新会覆盖之前的修改,导致只有最后一次点击生效。

解决方法很简单,改用函数式更新获取最新状态:

<Checkbox
  isSelected={cellValue as boolean}
  onValueChange={(isSelected) => {
    // 用函数式更新,prevUsers是最新状态快照
    setUsersData((prevUsers) => 
      prevUsers.map((u) => {
        if (u.id === user.id) {
          return { ...u, checked: isSelected };
        }
        return u;
      })
    );
  }}
></Checkbox>

这样每次更新都会基于最新的用户数组修改指定行的checked属性,不会再出现旧状态覆盖新修改的情况。无论切换分页、执行搜索还是调整列,只要表格数据基于usersData状态渲染,选中状态都会被正确保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 20:42:35