Split分割面板拖拽后布局错乱怎么办?
我用的是 Ant Design 的 Split 面板,左右两个区域,设置了 defaultSize 初始比例。但用户拖动分隔条之后,页面一刷新或者重新渲染,布局就完全错位了,右边的内容直接被挤没了。
我试过加 minSize 限制,也试过用 persist 把尺寸存到 localStorage,但有时候还是会出现宽度变成 0 或者负数的情况,控制台也没报错,就是样式崩了。
这是我的组件代码:
<SplitPane split="vertical" defaultSize={300} minSize={200}>
<div>左侧菜单</div>
<div>右侧内容区</div>
</SplitPane>
你试的 persist 可能没完全用对,或者组件版本不支持。正确做法是用受控模式:
关键点就是把 defaultSize 改成 size 自己控制状态,加上 onDragEnd 回调保存尺寸。初始化时从 localStorage 读,读不到就用默认值。
关于宽度变 0 或负数的问题,可以在保存前加个校验:
这样基本就能解决你遇到的问题了,希望能帮到你。