文档贡献者
本文档将帮助你从 antd 5.x 版本升级到 antd 6.x 版本。本次升级为一次技术升级,虽然组件 API 保持兼容,但在升级前您需要确保您的环境满足新的要求。
npm install --save antd@6# 或yarn add antd@6# 或pnpm add antd@6
antd@6 要求 React 版本 >= 18,不再支持 React 17 及以下。@ant-design/v5-patch-for-react-19 来兼容 React 19,如果使用可以移除该依赖。- import '@ant-design/v5-patch-for-react-19';
mask 蒙层功能,并支持模糊效果。import { ConfigProvider, Drawer, Modal } from 'antd';export default () => (<ConfigProvidermodal={{mask: {blur: false,},}}drawer={{mask: {blur: false,},}}><Modal /><Drawer /></ConfigProvider>);
v6 移除了 Tag 组件末尾的默认外边距(以前 Tag 末尾会额外留出一段 margin-inline-end)。如果你的布局或自定义样式依赖这一行为,请使用 ConfigProvider 的 tag.styles 进行补充:
import { ConfigProvider, Tag } from 'antd';export default () => (<ConfigProvidertag={{styles: {root: {marginInlineEnd: 8,},},}}><Tag>Tag A</Tag><Tag>Tag B</Tag><Tag>Tag C</Tag></ConfigProvider>);
onFinish 取值不再包含 Form.List 全部数据v5 版本中,Form.List 会被认为是一个 Field,以至于提交时会包含 Form.List 下的所有数据结构即便其子元素的 Form.Item 没有注册过。在 v6 中,Form.List 不再包含未注册的子项数据。因而你不再需要通过 getFieldsValue({ strict: true }) 来过滤未注册字段。
const onFinish = (values) => {-- const realValues = getFieldsValue({ strict: true });++ const realValues = values;// ...}<Form onFinish={onFinish} />
为了确保升级到 v6 后项目正常运行,请参考以下检查清单逐项确认:
@ant-design/v5-patch-for-react-19。mask 的模糊效果,如不需要可保持默认。legacy API 的提示。如果您在升级过程中遇到问题,请到 GitHub issues 进行反馈。我们会尽快响应并在文档中完善相关说明。