SuperAPI AI 工具集

react-resizable-panels-v3-to-v4

前端与建站

查看项目

更新于 10-16 09:52

技能介绍

用途:指导 react-resizable-panels 从 v3 升级到 v4,修复 v4 类型或运行时错误(如 PanelGroup 未导出、direction prop 无效、布局错乱)。

主要能力:v4 为重大版本升级,核心变化包括组件重命名(ARIA 对齐)、尺寸单位系统重构(数字由百分比改为像素)、移除 order prop、移除 onCollapse/onExpand。技能覆盖迁移全部关键路径,并提供常见错误快速定位表和迁移检查清单。

必要用法: 安装:pnpm add react-resizable-panels@4;或 npm install react-resizable-panels@4。 组件重命名:PanelGroup → Group,PanelResizeHandle → Separator,Panel 不变;导入改为 import { Panel, Group, Separator } from 'react-resizable-panels';。 Prop 变更:direction → orientation;ref 改为命名 prop(panelRef/groupRef);autoSaveId 移除,改用 useDefaultLayout hook;onLayout 改为 onLayoutChange / onLayoutChanged。 尺寸单位(关键):v4 数字表示像素,百分比需显式字符串;将 defaultSize、minSize、maxSize、collapsedSize 的数值后加 % 并转为字符串,否则布局会完全错乱。支持 px、%、em、rem、vh、vw。 移除项:order、onCollapse/onExpand(改用 onResize 回调)、disableGlobalCursorStyles()(改为 Group 上的 disableCursor prop)。 类型重命名:PanelResizeHandleProps → SeparatorProps,ImperativePanelGroupHandle → GroupImperativeHandle,ImperativePanelHandle → PanelImperativeHandle,新增 PanelSize({ asPercentage, inPixels })。 Hook:usePanelRef、useGroupRef;useDefaultLayout({ groupId, storage }) 替代 autoSaveId。 CSS data 属性:data-resize-handle-state → data-separator,drag → active,data-resize-handle-active 合并为 data-separator="active";data-panel-group-direction 改为 aria-orientation,注意语义翻转(水平组的分隔条为垂直,aria-orientation="vertical",需 width)。

适用场景:React 项目升级该库至 v4、排查升级后的类型/运行时错误、修复分隔条样式失效与布局异常。

限制:本技能为迁移指南,具体 API 行为以对应版本源码与文档为准;资料未提供依赖版本约束、兼容性矩阵与回滚方案。