@td-design/react-native-rating
Version:
基于 @td-design/react-native 的 rating 组件
136 lines (113 loc) • 4.3 kB
Markdown
---
title: Rating - 评分组件
nav:
title: RN组件
path: /react-native
group:
title: 评分组件
path: /ratings
---
# Rating 评分组件
使用本组件需要单独安装:**yarn add @td-design/react-native-rating**
## 效果演示
### 1. 点击评分
```tsx | pure
<TapRating count={5} selectedColor="red" />
```
<center>
<figure>
<img
alt="rating-ios1.gif"
src="https://td-dev-public.oss-cn-hangzhou.aliyuncs.com/maoyes-app/1608031082750770825.gif"
style="width: 375px; margin-right: 10px; border: 1px solid #ddd;"
/>
</figure>
</center>
### 2. 不显示评分对应的文字
```tsx | pure
<TapRating count={5} showReview={false} />
```
<center>
<figure>
<img
alt="rating-ios2.gif"
src="https://td-dev-public.oss-cn-hangzhou.aliyuncs.com/maoyes-app/1608031167591520069.gif"
style="width: 375px; margin-right: 10px; border: 1px solid #ddd;"
/>
</figure>
</center>
### 3. 滑动评分向上取整
```tsx | pure
const [rating, setRating] = useState(0);
<Text>您选择的分数是:{rating}</Text>
<SwipeRating
count={5}
fractions={0}
defaultRating={0}
onFinishRating={position => {
setRating(position);
}}
/>
```
<center>
<figure>
<img
alt="rating-ios3.gif"
src="https://td-dev-public.oss-cn-hangzhou.aliyuncs.com/maoyes-app/1608031383343799559.gif"
style="width: 375px; margin-right: 10px; border: 1px solid #ddd;"
/>
</figure>
</center>
### 4. 滑动评分保留小数
```tsx | pure
const [rating, setRating] = useState(2.5);
<Text>您选择的分数是:{rating}</Text>
<SwipeRating
count={5}
defaultRating={2.5}
fractions={2}
onFinishRating={position => {
setRating(position);
}}
/>
```
<center>
<figure>
<img
alt="rating-ios4.gif"
src="https://td-dev-public.oss-cn-hangzhou.aliyuncs.com/maoyes-app/1608031551235116500.gif"
style="width: 375px; margin-right: 10px; border: 1px solid #ddd;"
/>
</figure>
</center>
## API
### TapRating
| 属性 | 必填 | 说明 | 类型 | 默认值 |
| --- | --- | --- | --- | --- |
| defaultRating | `false` | 默认分数 | `number` | |
| count | `false` | 评分总数 | `number` | `5` |
| showReview | `false` | 是否显示文字 | `boolean` | `true` |
| reviewSize | `false` | 文字大小 | `number` | `25` |
| reviewColor | `false` | 文字颜色 | `string` | |
| reviews | `false` | 文字数组 | `string[]` | `['非常差', '很差', '一般', '很好', '非常好']` |
| size | `false` | 评分大小 | `number` | `40` |
| disabled | `false` | 是否禁用 | `boolean` | `false` |
| starStyle | `false` | 评分样式 | `ImageStyle` | |
| selectedColor | `false` | 评分选中颜色 | `string` | `gold` |
| unselectedColor | `false` | 评分未选中颜色 | `string` | `gray` |
| outRangeScale | `false` | 评分点击时缩放大小 | `number` | |
| onFinishRating | `false` | 评分结束时的回调事件 | `(rating: number) => void` | `1.2` |
| activeOpacity | `false` | 按下时的不透明度 | `number` | `0.6` |
### SwipeRating
| 属性 | 必填 | 说明 | 类型 | 默认值 |
| --------------- | ------- | ------------------------- | -------------------------- | ------ |
| ratingBgColor | `false` | 评分底色 | `string` | |
| ratingFillColor | `false` | 评分填充色 | `string` | |
| count | `false` | 评分总数 | `number` | `5` |
| strokeColor | `false` | 评分边框色 | `string` | |
| size | `false` | 评分大小 | `number` | `40` |
| disabled | `false` | 是否禁用 | `boolean` | |
| defaultRating | `false` | 默认选中评分 | `number` | `2.5` |
| minValue | `false` | 评分最小值 | `number` | `0` |
| fractions | `false` | 小数位数。传 0 时向上取整 | `number` | `2` |
| onFinishRating | `false` | 评分结束时的回调事件 | `(rating: number) => void` | |