输入类 · Rating
评分
展示评分的组件

代码演示

如何引入

基本用法

最简单的用法,支持两种尺寸 defaultsmall
支持传入 number 类型自定义尺寸。具体可以参考自定义

半星

通过设置 allowHalf 属性可以支持选择半星。 allowHalf 属性支持展示除0.5以外的小数。

只读

通过设置 disabled 属性将无法进行交互。

点击清除

通过设置 allowClear 属性允许再次点击时清除数值,默认为 true

文案展现

给评分组件加上文案展示。

自定义

自定义评分字符、个数及尺寸。
自定义尺寸需要配合自定义的字符才能生效。

API参考

属性说明类型默认值
allowClear是否允许再次点击后清除booleantrue
allowHalf是否允许半选booleanfalse
autoFocus自动获取焦点booleanfalse
character自定义字符ReactNode<IconStar size="extra-large"/>
className自定义样式类名string-
countstar 总数number5
defaultValue默认值number0
disabled只读,无法进行交互booleanfalse
preventScroll指示浏览器是否应滚动文档以显示新聚焦的元素,作用于组件内的 focus 方法boolean
size尺寸, defaultsmallv >= 0.35.0 后支持传入 number 类型自定义尺寸string | numberdefault
style自定义样式对象object-
tooltips自定义每项的提示信息string[]-
value当前受控值number-
onBlur失去焦点时的回调function()-
onChange选择时的回调function(value: number)-
onFocus获取焦点时的回调function()-
onHoverChange鼠标经过时数值变化的回调function(value: number)-
onKeyDown按键回调function(e: event)-

Accessibility

ARIA

  • Rating 具有 aria-checked 表示当前是否选中,aria-posinset 表示在列表的位置,aria-setsize 表示列表的长度。
  • Semi 支持自定义 Rating 的语义:
    • 可以使用 aria-label 来定制 Rating 的语义化;
    • 若用户传入的 character 类型为 string,将使用这个 string 来做 Rating 的语义化;
    • aria-label的优先级高于string的character

键盘和焦点

  • Rating 的初始焦点设置:
    • 若 Rating 有选择项时,初始焦点应当设置为最后一个选择项时(如:有 3颗🌟被点亮,则初始焦点设置在第三颗被点亮的🌟上);
    • 若 Rating 没有选择项时,初始焦点应当为整个 Rating。
  • 一个 Rating 组上,可以通过 右箭头上箭头 选中当前焦点的下一个焦点项,左箭头下箭头 选中当前焦点的上一个焦点项;
    • 用户设置了 allowHalf 属性,按方向键只选中或取消选中半颗星;
  • disabled的 Rating 无法被获取到焦点。

设计变量