Ant Design 的 组件底层基于 Flex 布局,默认行为是 flex-wrap: wrap(即空间不足时自动换行)。
空间被挤占:当 selectedFile.name 文件名很长时,中间显示文件名的 会无限撑宽。
总宽度溢出:所有 的宽度总和 + gutter 间距超过了 Modal 的宽度(600px 减去 padding)。
触发换行:由于默认允许换行,排在最后的 Template 按钮就会被挤到下一行。
要解决这个问题,我们需要将布局模式改为 “自适应单行布局”。核心思路是:让两边的按钮宽度固定,中间的文件名文本占据剩余空间,如果空间不够则自动显示省略号(...),而不是把别人挤下去。
关键修改点:
-
Row 组件:添加 wrap={false} 属性,强制不换行。
-
按钮的 Col:添加 flex="none",防止按钮被压缩或拉伸,保持原始宽度。
-
文本的 Col:添加 flex="auto" 和 style={{ minWidth: 0 }}。这是 Flex 布局中让子元素实现文本截断的标准写法。
-
Text 组件:添加 ellipsis 属性,让超长文本显示省略号,并配合 tooltip 显示完整文件名。