基于react antDesign 封装一个简单的Select组件

5 篇文章 0 订阅
5 篇文章 0 订阅

基于react antDesign 封装一个简单的Select组件,可移步官网: 查看.

目的在基于Select功能的基础上封装为圆角、改变下拉箭头颜色Select组件,这里命名为jrSelect

废话不多说啦,先看下Ant Design 给出的效果图:

在这里插入图片描述
目标实现效果图:

在这里插入图片描述

jsx部分实现

1 定义一个名为JrSelect的组件,export default JrSelect导出组件
1 className={`${className} round_select`} 接收父组件className拼接到子组件Select上,round_select 为定义的样式,包含边框、下拉箭头等
2 {...this.props} 接收父组件上全部属性

代码如下:

/*
* @Date 2020/5/8
* @Author zuolinya
* @Description antd select组件 二次封装
* 1 设置为圆角
* 2 箭头颜色 #356FFF
*/
import React from "react";
import { Select } from "antd";
import './index.less'

class JrSelect extends React.Component<any> {

  constructor(props: any) {
    super(props);
  }

  render() {
    const { className } = this.props
    return (
      <Select {...this.props} className={`${className} round_select`}>
        {this.props.children}
      </Select>
    );
  }
}

export default JrSelect;

less部分实现:

@import '~antd/es/style/themes/default.less';

.round_select {
  border-radius: 50%;

  .ant-select-selector {
    border-radius: 50px !important;
  }

  .ant-select-arrow {
    color: #356FFF !important;
  }
}

父组件引用:

//第一步引入组件
import JrSelect from '@/components/JrSelect';

//第二步,引用组件,使用方法同ant design Select,具体api可参考ant design 官网
class ParentComponent extends React.Component<any> {

  constructor(props: any) {
    super(props);
  }
  render() {
    return (
      <JrSelect className="fliter_select" defaultValue={''} >
		  <Option value={''} key={''}>
		     全部
		   </Option>
		   <Option value={0} key={0}>
		     品牌推广
		   </Option>
		   <Option value={1} key={1}>
		     app拉新
		   </Option>
	 </JrSelect>
    );
  }
}

export default ParentComponent;

如有问题请联系我~

欢迎加入QQ群:
在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值