2021SC@SDUSC

Rate 评分

  • 对评价进行展示。
  • 对事物进行快速的评级操作。

API & Methods

属性 说明 类型 默认值 版本
allowClear 是否允许再次点击后清除 boolean true
allowHalf 是否允许半选 boolean false
autoFocus 自动获取焦点 boolean false
character 自定义字符 ReactNode | (RateProps) => ReactNode <StarFilled /> function(): 4.4.0
className 自定义样式类名 string -
count star 总数 number 5
defaultValue 默认值 number 0
disabled 只读,无法进行交互 boolean false
style 自定义样式对象 CSSProperties -
tooltips 自定义每项的提示信息 string[] -
value 当前数,受控值 number -
onBlur 失去焦点时的回调 function() -
onChange 选择时的回调 function(value: number) -
onFocus 获取焦点时的回调 function() -
onHoverChange 鼠标经过时数值变化的回调 function(value: number) -
onKeyDown 按键回调 function(event) -
名称 描述
blur() 移除焦点
focus() 获取焦点

部分源码

import * as React from 'react';
import RcRate from 'rc-rate';
import StarFilled from '@ant-design/icons/StarFilled';import Tooltip from '../tooltip';
import { ConfigContext } from '../config-provider';

引入react rate组件以及antdesign图标中一个可填充星星的图标

export interface RateProps {prefixCls?: string;count?: number;value?: number;defaultValue?: number;allowHalf?: boolean;allowClear?: boolean;disabled?: boolean;tooltips?: Array<string>;onChange?: (value: number) => void;onHoverChange?: (value: number) => void;character?: React.ReactNode;className?: string;style?: React.CSSProperties;
}interface RateNodeProps {index: number;
}const Rate = React.forwardRef<unknown, RateProps>(({ prefixCls, tooltips, ...props }, ref) => {const characterRender = (node: React.ReactElement, { index }: RateNodeProps) => {if (!tooltips) return node;return <Tooltip title={tooltips[index]}>{node}</Tooltip>;};const { getPrefixCls, direction } = React.useContext(ConfigContext);const ratePrefixCls = getPrefixCls('rate', prefixCls);return (<RcRateref={ref}characterRender={characterRender}{...props}prefixCls={ratePrefixCls}direction={direction}/>);
});Rate.displayName = 'Rate';Rate.defaultProps = {character: <StarFilled />,
};export default Rate;

可以看出Rate评分组件的代码量并不多,结构也较为简单,相当于是在rc-rate之上稍作修改
前面是接口,之后是forwardRef函数,最终生成组件Rate

使用

最简单的用法:

import { Rate } from 'antd';ReactDOM.render(<Rate />, mountNode);

可以使用 (RateProps) => ReactNode 的方式自定义每一个字符。

import { Rate } from 'antd';
import { FrownOutlined, MehOutlined, SmileOutlined } from '@ant-design/icons';const customIcons = {1: <FrownOutlined />,2: <FrownOutlined />,3: <MehOutlined />,4: <SmileOutlined />,5: <SmileOutlined />,
};ReactDOM.render(<><Rate defaultValue={2} character={({ index }) => index + 1} /><br /><Rate defaultValue={3} character={({ index }) => customIcons[index + 1]} /></>,mountNode,
);

这样可以达到类似下图的效果

Ant Design学习——Rate相关推荐

  1. React开发(138):ant design学习指南之anchor处理

    层级处理

  2. React开发(139):ant design学习指南之下载文件

    isIE = () => {if (!!window.ActiveXObject || 'ActiveXObject' in window) {return true;} else {retur ...

  3. React开发(137):ant design学习指南之form中日期时间处理format时间处理

  4. React开发(136):ant design学习指南之form中动态form新增删除

  5. React开发(135):ant design学习指南之form中动态form新增删除

  6. React开发(134):ant design学习指南之form中getFieldValue

  7. React开发(133):ant design学习指南之form中input加前缀

  8. React开发(132):ant design学习指南之form中控制展开和关闭逻辑

  9. React开发(131):ant design学习指南之form中的resetFields

    重置表单值

最新文章

  1. Percona XtraDB Cluster(转)
  2. python中的argparse包——用于解析命令行参数
  3. Centos下chef安装、部署
  4. 安全cookie setSecure详解
  5. 后端选型中不同语言及对应的Web框架
  6. openstack介绍(二)
  7. 《SOA中国路线图》下载
  8. 启动Eclipse时发生An internal error occurred during: Initializing Java Tooling错误,详细提示如下:...
  9. JSON与XML优缺点对比分析
  10. python 类继承 baseclass_Python:Dataclass继承自base Dataclass,如何将值从base升级到新类?...
  11. 常用的数据库维护语句
  12. C++面向对象课程设计实例-图书馆借阅系统
  13. 全智通A+常见问题汇总解答—A+维修管理—维修领料,修改领料单材料归属到了另一个维修单下
  14. linux 进程堆管理,对Linux堆内存释放的总结
  15. 鸿蒙系统如何开启快捷方式,鸿蒙系统功能介绍-华为鸿蒙系统功能详细介绍 - 系统家园...
  16. ERP在企业财务管理中的应用
  17. 一键脚本搭建docker redis 集群(cluster)
  18. 搜索框的代码css,css搜索框_精美css搜索框代码
  19. buct寒假集训——lca
  20. Android showStatusIcon on inactive InputConnection异常

热门文章

  1. 成功案例超详细-vs2019 opencv qt创建动态库被C#调用
  2. 修复IE11首页被恶意篡改的问题
  3. :visible.sync弹框显示隐藏
  4. 原生JS实现鼠标按下拖拽效果
  5. 如何真实的去验证一张身份证呢
  6. 【数据仓库-9】-- 数据仓库、数据集市和数据湖的区别
  7. 墨西哥跨境物流怎么选择?
  8. 爬取淘宝商家货物简单销售数据,双十一马上就到了,秒杀准备了吗
  9. ffmpeg 之avcodec_receive_frame分析二
  10. Ubuntu下caffe:用自己的图片训练并测试AlexNet模型