Rating 评分

如果项目中使用的是 0.x 版本的基础组件(@icedesign/base, @ali/ice, @alife/next),请在左侧导航顶部切换组件版本。

安装方法

  1. 在命令行中执行以下命令npm install @alifd/next@latest -S

Guide

评分组件通常用于用户反馈场景。

API

Rating

参数说明类型默认值
defaultValue默认值Number0
size尺寸可选值:'small', 'medium', 'large'Enum'medium'
valueNumber-
count评分的总数Number5
showGrade是否显示 gradeBooleanfalse
allowHalf是否允许半星评分Booleanfalse
onChange用户点击评分时触发的回调签名:Function(value: String) => void参数:value: {String} 评分值Functionfunc.noop
onHoverChange用户hover评分时触发的回调签名:Function(value: String) => void参数:value: {String} 评分值Functionfunc.noop
disabled是否禁用Booleanfalse
readAs评分文案生成方法,传入id支持无障碍时,读屏软件可读签名:Function() => voidFunctionval => val

ARIA and KeyBoard

按键说明
Up Arrow增加星级评分
Down Arrow减少星级评分
Right Arrow增加星级评分
Left Arrow减少星级评分

代码示例

基本

最简单的用法。

Rating 评分 - 图1

查看源码在线预览

  1. import { Rating } from '@alifd/next';
  2. ReactDOM.render(<div>
  3. <Rating defaultValue={3.2} onChange={val => console.log('change:', val)} onHoverChange={val => console.log('hover:', val)} />
  4. </div>, mountNode);

尺寸

通过 size 属性可以控制评分组件的大小,支持三种尺寸 small, medium, large。默认尺寸为 medium

Rating 评分 - 图2

查看源码在线预览

  1. import { Rating } from '@alifd/next';
  2. ReactDOM.render(<div>
  3. <Rating defaultValue={3.2} size="small" />
  4. <br/>
  5. <br/>
  6. <Rating defaultValue={3.2} />
  7. <br/>
  8. <br/>
  9. <Rating defaultValue={3.2} size="large" />
  10. </div>, mountNode);

半星评分

默认情况下评分组件只支持整数评分,通过开启 allowHalf 属性可以支持半星评分。

Rating 评分 - 图3

查看源码在线预览

  1. import { Rating } from '@alifd/next';
  2. ReactDOM.render(<Rating defaultValue={3.2} allowHalf />, mountNode);

只读模式

设置 disabled 属性后,评分组件仅展示模式,不可选择。

Rating 评分 - 图4

查看源码在线预览

  1. import { Rating } from '@alifd/next';
  2. ReactDOM.render(<Rating defaultValue={3.2} disabled />, mountNode);

无障碍

组件内置了部分支持无障碍, 但是额外需要开发者手动事情才能完整支持无障碍:给 Rating 传入一个id,就可以支持语音提示当前选择的评分。注意:如果一个页面上有多个 Rating,id 属性一定不能相同。

Rating 评分 - 图5

查看源码在线预览

  1. import { Rating } from '@alifd/next';
  2. const starMap = {
  3. 1: 'Bad',
  4. 2: 'OK',
  5. 3: 'Good',
  6. 4: 'Great',
  7. 5: 'Perfect'
  8. };
  9. ReactDOM.render(<div>
  10. <Rating
  11. id="rating-a11y-1"
  12. defaultValue={3}
  13. readAs={(val) => starMap[val]}
  14. onChange={val => console.log('change:', val)}
  15. onHoverChange={val => console.log('hover:', val)} />
  16. </div>, mountNode);

等级提示

添加 showGrade 属性,使评分组件具有等级提示信息。

Rating 评分 - 图6

查看源码在线预览

  1. import { Rating } from '@alifd/next';
  2. const starMap = {
  3. 1: 'Bad',
  4. 2: 'OK',
  5. 3: 'Good',
  6. 4: 'Great',
  7. 5: 'Perfect'
  8. };
  9. ReactDOM.render(
  10. <Rating
  11. defaultValue={2}
  12. showGrade
  13. readAs={(val) => starMap[val]}
  14. />, mountNode);

相关区块

Rating 评分 - 图7

暂无相关区块