基于antd的Select二次封装会报警告

发布于 2022-09-13 00:48:19 字数 1482 浏览 17 评论 0

问题描述

基于antd的Select二次封装,通过chidren接收组件内容时会报错,传入Option时警告但是能出效果,传入OptGroup时警告页面没有效果,警告内容为:children should be Select.Option or Select.OptGroup instead of ...

问题出现的环境背景及自己尝试过哪些方法

基于antd进行二次开发

相关代码

// 编写组件
import React from 'react';
import { Select } from 'antd';

const Index = React.forwardRef(({ children, ...rest }, ref) => {
  return <Select ref={ref} {...rest}>{children}</Select>
});

Index.Option = ({ children, ...rest }) => (
  <Select.Option {...rest}>{children}</Select.Option>
);

Index.OptGroup = ({ children, ...rest }) => (
  <Select.OptGroup {...rest}>{children}</Select.OptGroup>
);

export default Index;
// 组件的使用
import React from 'react';
import {  Select } from 'components-antd';

const { Option, OptGroup } = Select;

export default () => (
  <Select showSearch style={{ width: 200 }}>
     <OptGroup key="Manager" label="Manager">
      <Option value="jack">Jack</Option>
      <Option value="lucy">Lucy</Option>
    </OptGroup>
    <OptGroup key="Engineer" label="Engineer">
      <Option value="Yiminghe">yiminghe</Option>
    </OptGroup>
  </Select>
)

你期待的结果是什么?实际看到的错误信息又是什么?

页面可以正常显示,实际会出现部分问题以及出现警告,警告信息如下,其它组件测试可以成功透传children,就Select会出现问题
image.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文