#6243·table

Chrome 渲染器在 TanStack 排行模型打开悬时被冻结

作者: HaukeSchnau创建于 2026年5月6日更新于 2026年5月7日

□ 总结

在Vite出品预览中,Chrome在真实浏览器点击在同一渲染道上发生以下所有情况后可以被冻结:

  1. 同步反应状态更新将TanStack表格从空数据切换为一行新数据。
  2. 本部分为 " table.getRowModel (.rows.word " )。
  3. 该行模读取 " suspense " 内安置一名儿童的大门。
  4. 儿童通过作出计时员支持的承诺而暂停活动。

复写是独立的,只使用局部反应状态/数据.

□再现.

独立重写 :

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一行模型.