ant-design的Select组件采用自定义后缀图标(suffixIcon属性)时,点击该自定义图标没有反应,不会展示下拉菜单的问题

一. 问题原因

自定义图标采用了ant-design的Icon图标组件

我是在ant-design-react的项目中出现的这个问题,估计ant-design-vue中也会这样。

import { CaretDownOutlined } from '@ant-design/icons'
import { Select } from 'antd'

<Select
  size='large'
  showArrow
  bordered={false}
  value={selTransactionType}
  options={transactionOptions}
  onChange={handleTransactionTypeChange}
  suffixIcon={<CaretDownOutlined style={{ fontSize: '15px', color: '#CBD0DB' }} />}
 />

在这里插入图片描述
点击Select其他部分都可以展示下拉框,唯独点击图标没有反应。

二. 解决办法

让UI同学将这个箭头切下来,通过标签的形式放上去

import { CaretDownOutlined } from '@ant-design/icons'
import { Select, Image } from 'antd'

<Select
  size='large'
  showArrow
  bordered={false}
  value={selTransactionType}
  options={transactionOptions}
  onChange={handleTransactionTypeChange}
  suffixIcon={
  	<Image
       src={'https://XXXXXXXXXX/date-icon.png'}
       alt='coverImage'
       preview={false}
       style={{ width: '16px', height: '16px' }}
    />
    <img
       src={'https://XXXXXXXXXX/date-icon.png'}
       alt='coverImage'
       style={{ width: '16px', height: '16px' }}
    />
  }
 />

若是使用ant-design的Image组件,ant-design的Image组件自带预览图片功能,记得需要将preview置为false。

或者直接用img标签即可。

在这里插入图片描述

现在不管点击图标还是其他位置都可以展示下拉框了。

(完)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ant-design 是一个流行的React UI组件库,提供了丰富的组件来帮助开发者快速构建用户界面。在ant-design中,表单验证是一个重要的功能,可以通过自定义组件来实现。 对于自定义组件,我们可以使用Form.create方法来创建一个高阶组件。在自定义组件中,我们可以通过getFieldDecorator方法来包装我们的自定义组件,实现表单验证的功能。 在包装自定义组件,我们可以使用rules参数来定义验证规则。比如,我们可以通过required:true来指定该字段为必填项,通过message参数来指定验证不通过的错误提示信息。除此之外,我们还可以自定义其他验证规则,比如验证正则表达式、长度范围等。 在自定义组件中,可以通过this.props.form.getFieldError来获取某个字段的验证错误信息,通过this.props.form.isFieldValidating来判断某个字段是否正在进行验证,通过this.props.form.validateFields来触发表单验证。 同,我们还可以使用validateTrigger参数来指定触发表单验证的机,默认是onChange事件。比如,我们可以将validateTrigger设置为onBlur,表示在失去焦点进行表单验证。 总结来说,ant-design提供了一系列的API来实现表单验证功能,通过自定义组件的方式可以很方便地实现对自定义组件的验证。开发者可以根据自己的需求灵活使用这些API来完成表单验证的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值