Antd 5迁移遇Dropdown的overlay废弃问题:自定义内容如何处理?
Antd升级中Dropdown自定义内容的适配问题
项目原本使用 antd 4.22.8,将 React 从 17 升级至 18 后,在开发模式的 React StrictMode 下,部分 antd 基础组件(如 Tooltip、Checkbox)在特定场景下无法正常工作。曾考虑在子树中禁用 StrictMode 作为临时修复,但 React 官方明确不支持该方案。
因此,保留 StrictMode 的唯一可行途径是将 antd 升级至最新 5.x 版本(该版本已修复大部分 StrictMode 相关问题)。
按照官方迁移指南,先将 antd 小版本升级至当前最新的 4.24.14,多数新警告已解决,但遇到以下警告:
Warning: [antd: Dropdown]
overlayis deprecated. Please usemenuinstead.
已废弃的 overlay 属性接收 ReactElement 类型,但新的 menu 属性仅支持 MenuProps 类型:
export interface MenuProps extends Omit<RcMenuProps, 'items'> { theme?: MenuTheme; inlineIndent?: number; items?: ItemType[]; }
问题核心:项目中有多处 Dropdown 通过 overlay 传入自定义内容(而非菜单),menu 属性无法适配这类场景。想知道该如何处理?是否需要基于旧的 react-components Dropdown 实现自定义支持自定义内容的 Dropdown?或者有没有更简便的 Antd 组件替代方案?
目前官方警告未提及此类场景,官方文档中也未找到相关指南,所有 Dropdown 示例均使用菜单作为内容。
内容的提问来源于stack exchange,提问作者ezze
相关产品推荐
相关产品推荐

