环境
- 平台:Windows
- 版本:Lithe 0.3.0 安装版
- 前端:React 19 / Base UI ScrollArea
问题现象
使用编辑器过程中,工作台被错误边界替换并显示:
编辑器界面渲染失败
Minified React error #185
点击“重试”后仍可能再次出现。
复现步骤
- 在 Windows 启动 Lithe 0.3.0。
- 打开包含诊断信息的项目。
- 打开诊断面板,并进行滚动、切换面板或触发重新渲染。
- 工作台进入渲染错误界面。
实际结果
运行日志包含:
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 的转发行为。
- 增加滚动区域重复渲染的回归测试。
环境
问题现象
使用编辑器过程中,工作台被错误边界替换并显示:
点击“重试”后仍可能再次出现。
复现步骤
实际结果
运行日志包含:
组件栈指向:
DiagnosticsPaneScrollArea@base-ui/react/scroll-areaReact #185 表示更新深度超限。
预期结果
滚动区域重新渲染时不应产生 ref 解绑/绑定引起的状态更新循环,编辑器界面应保持可用。
初步根因
ScrollArea在每次渲染时重新创建setViewportRef回调。React 会先用null清理旧 ref,再绑定新 ref;回调中的setViewportNode又触发重新渲染,从而形成重复解绑、状态更新和渲染循环。建议修复
useCallback保持 viewport ref 回调稳定。