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

React-table全局筛选后编辑单元格触发页面跳转BUG问询

React表格搜索后编辑跳回第一页问题修复

问题描述

实现了带全局搜索、分页和可编辑单元格的表格组件,使用全局筛选搜索内容后,编辑单元格并点击其他区域失焦时,表格会瞬间跳回第一页,该问题仅在搜索后进行编辑操作时出现。

问题原因

  1. 编辑单元格时,skipPageReset会被临时设为true,防止数据更新时自动重置分页;100ms后skipPageReset会恢复为false。
  2. EditableTable组件中,用于同步搜索值到全局过滤器的useEffect错误地将skipPageReset列为依赖项,导致skipPageReset变化时会重新调用setGlobalFilter。
  3. 此时autoResetPage配置为!skipPageReset(即true),react-table在设置全局过滤器时会自动将页码重置为第一页,从而出现跳页问题。

修复方案

1. 移除全局过滤器Effect的不必要依赖

修改EditableTable.tsx中的useEffect,去掉skipPageReset依赖,确保仅在搜索值变化时更新全局过滤器:

useEffect(() => {
  setGlobalFilter(searchValue || undefined)
}, [searchValue, setGlobalFilter]) // 移除skipPageReset依赖

2. 清理App组件Effect的无效依赖

App.tsx中的useEffect依赖了不会变化的originalData,移除该依赖避免不必要的Effect触发:

React.useEffect(() => {
  console.log('data updated')
  const timeout = setTimeout(() => {
    setSkipPageReset(false)
  }, 100)

  return () => clearTimeout(timeout)
}, [data]) // 移除originalData依赖

修复效果

修改后,编辑单元格时skipPageReset的变化不会再触发全局过滤器的重复设置,react-table也就不会自动重置分页,解决了搜索后编辑跳回第一页的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 19:33:11