Chrome 渲染器在 TanStack 排行模型打开悬时被冻结
作者: HaukeSchnau创建于 2026年5月6日更新于 2026年5月7日
□ 总结
在Vite出品预览中,Chrome在真实浏览器点击在同一渲染道上发生以下所有情况后可以被冻结:
- 同步反应状态更新将TanStack表格从空数据切换为一行新数据。
- 本部分为 " table.getRowModel (.rows.word " )。
- 该行模读取 " suspense " 内安置一名儿童的大门。
- 儿童通过作出计时员支持的承诺而暂停活动。
复写是独立的,只使用局部反应状态/数据.
□再现.
独立重写 :
https://GitHub.com/HaukeSchnau/受委托-点击-表-suspense-freeze-repro.
提交此问题时使用的重写承诺 :
https://GitHub.com/HaukeSchnau/受委托-点击表-suspense-freeze-repro/tree/67c0ea8 互联网档案馆的存檔,存档日期2014-12-22.
嘘 git Clone https://GitHub.com/HaukeSchnau/ 信任-点击表-suspense-freeze-repro.git cd 可信点击表-suspense-freeze-repro pnpm 安装 检查pnpm pnpm 预览: repro
然后在Chrome打开`http://127.0.0.1:4174'并点击`Synchronous活行'。
重制指令使用Vite生产预览. 我没有描述Vite dev模式。
□ 预期行为
点击完成后,Suspense倒置处理所抛出的承诺,页面仍然响应.
□ 实际行为
Chrome 标签在点击时会被冻结 。 需要重新装入或关闭标签才能恢复。
□ 环境
- 反应`19.2.3'
- " 反应 " `19.2.3 '
- Tanstack/反应表`8.21.3'
- 第7.3.0号
- TypeScript `5.9.3'号
- 节点`v24.11.1'
- 第10.25.0页
- `导航员.user Agent ' 的 " 147.0.0.0克罗姆 "
- macOS`26.4.1'(`25E253')
我只确认了Chrome的冻结 Firefox和Safari没有经过测试.
□ 减少触发
时间轴 :
接合栏: [] = [;
const core RowModel = 获得 CoreRowModel (); ;
解决=虚假;
让承诺:许诺 " 无效 " ;
函数 Suspender () {
如果 (! 已解决) {
承诺? = 新承诺(解决) {{
窗口。设置超时( ()) #{{
解决=是真;
解析( );
* ;
* ;
抛出承诺;
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
返回为无效;
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
函数 App () {
c. [活性、设 = 使用状态(假);
缩写表 = 使用ReactTable({)
数据:活动 ? [null]: [],
栏,
获取 CoreRowModel: 核心RowModel,
* ;
返回( ưμ㼯A
<>
{table.getRowModel (). rows. longs? (表.getRowModel (. rows. longs)?) (中文(简体) ).
< 暂停倒计时 {{{}}}
< suspener / > 。
</暂停>
) : 无效
在 Click 上的 < 按钮 id="同步活动" () QQ set Aactive( true) QQ
同步活动行
</按钮 >
< /> (简体中文)
(三)
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?□ 孤立记
repro不使用 TanStack 路由器, TanStack 查询器, React 编译器, Vite React 插件, APIs, auth, 或生产应用代码 .
这最终可能是React悬浮或浏览器交互. 我首先在此备案是因为我所隔离的最小的图书专用条件就是TanStack Table一行模型.
内容来源: TanStack/table