Rate评分

评分组件。

何时使用

  • 对评价进行展示。

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

代码演示

Rate评分 - 图1

基本

最简单的用法。

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

Rate评分 - 图2

文案展现

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

  1. import { Rate } from 'antd';
  2. const desc = ['terrible', 'bad', 'normal', 'good', 'wonderful'];
  3. class Rater extends React.Component {
  4. state = {
  5. value: 3,
  6. };
  7. handleChange = value => {
  8. this.setState({ value });
  9. };
  10. render() {
  11. const { value } = this.state;
  12. return (
  13. <span>
  14. <Rate tooltips={desc} onChange={this.handleChange} value={value} />
  15. {value ? <span className="ant-rate-text">{desc[value - 1]}</span> : ''}
  16. </span>
  17. );
  18. }
  19. }
  20. ReactDOM.render(<Rater />, mountNode);

Rate评分 - 图3

清除

支持允许或者禁用清除。

  1. import { Rate } from 'antd';
  2. ReactDOM.render(
  3. <>
  4. <Rate defaultValue={3} />
  5. <span className="ant-rate-text">allowClear: true</span>
  6. <br />
  7. <Rate allowClear={false} defaultValue={3} />
  8. <span className="ant-rate-text">allowClear: false</span>
  9. </>,
  10. mountNode,
  11. );

Rate评分 - 图4

自定义字符

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

  1. import { Rate } from 'antd';
  2. import { FrownOutlined, MehOutlined, SmileOutlined } from '@ant-design/icons';
  3. const customIcons = {
  4. 1: <FrownOutlined />,
  5. 2: <FrownOutlined />,
  6. 3: <MehOutlined />,
  7. 4: <SmileOutlined />,
  8. 5: <SmileOutlined />,
  9. };
  10. ReactDOM.render(
  11. <>
  12. <Rate defaultValue={2} character={({ index }) => index + 1} />
  13. <br />
  14. <Rate defaultValue={3} character={({ index }) => customIcons[index + 1]} />
  15. </>,
  16. mountNode,
  17. );

Rate评分 - 图5

半星

支持选中半星。

  1. import { Rate } from 'antd';
  2. ReactDOM.render(<Rate allowHalf defaultValue={2.5} />, mountNode);

Rate评分 - 图6

只读

只读,无法进行鼠标交互。

  1. import { Rate } from 'antd';
  2. ReactDOM.render(<Rate disabled defaultValue={2} />, mountNode);

Rate评分 - 图7

其他字符

可以将星星替换为其他字符,比如字母,数字,字体图标甚至中文。

  1. import { Rate } from 'antd';
  2. import { HeartOutlined } from '@ant-design/icons';
  3. ReactDOM.render(
  4. <>
  5. <Rate character={<HeartOutlined />} allowHalf />
  6. <br />
  7. <Rate character="A" allowHalf style={{ fontSize: 36 }} />
  8. <br />
  9. <Rate character="好" allowHalf />
  10. </>,
  11. mountNode,
  12. );

API

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

方法

名称描述
blur()移除焦点
focus()获取焦点