Skip to content

[Windows] ScrollArea ref 重复更新导致 React error #185 和编辑器渲染失败 #215

Description

@puppyben1

环境

  • 平台:Windows
  • 版本:Lithe 0.3.0 安装版
  • 前端:React 19 / Base UI ScrollArea

问题现象

使用编辑器过程中,工作台被错误边界替换并显示:

编辑器界面渲染失败
Minified React error #185

点击“重试”后仍可能再次出现。

复现步骤

  1. 在 Windows 启动 Lithe 0.3.0。
  2. 打开包含诊断信息的项目。
  3. 打开诊断面板,并进行滚动、切换面板或触发重新渲染。
  4. 工作台进入渲染错误界面。

实际结果

运行日志包含:

Workbench render error: Minified React error #185

组件栈指向:

  • DiagnosticsPane
  • ScrollArea
  • @base-ui/react/scroll-area

React #185 表示更新深度超限。

预期结果

滚动区域重新渲染时不应产生 ref 解绑/绑定引起的状态更新循环,编辑器界面应保持可用。

初步根因

ScrollArea 在每次渲染时重新创建 setViewportRef 回调。React 会先用 null 清理旧 ref,再绑定新 ref;回调中的 setViewportNode 又触发重新渲染,从而形成重复解绑、状态更新和渲染循环。

建议修复

  • 使用 useCallback 保持 viewport ref 回调稳定。
  • 保留外部 callback ref 和 object ref 的转发行为。
  • 增加滚动区域重复渲染的回归测试。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions