
Security News
Feross on TBPN: Socket's Series C and the State of Software Supply Chain Security
Feross Aboukhadijeh joins TBPN to discuss Socket's $60M Series C, 500%+ ARR growth, AI's impact on open source, and the rise in supply chain attacks.
@uiw/react-rate
Advanced tools
评分组件
import { Rate } from 'uiw';
// or
import Rate from '@uiw/react-rate';
按钮样式的单选组合。
import React from 'react';
import { Rate, Divider, Icon } from 'uiw';
export default function Demo() {
return (
<div>
<Rate value={3} />
<Divider />
<Rate allowHalf character={<Icon type="star-on" />} value={2.5} />
<Divider />
<Rate color="#393E48" character="☆" value={4} />
<Divider />
<Rate color="#28a745" character={<Icon type="heart-on" />} value={3} />
<Divider />
<Rate color="#dc3545" character="✿" value={4} />
</div>
)
}
import React from 'react';
import { Form, Row, Col, Icon, Rate, Button, Notify } from 'uiw';
export default function Demo() {
return (
<div>
<Form
resetOnSubmit={false}
onSubmitError={(error) => {
if (error.filed) {
return { ...error.filed };
}
return null;
}}
onSubmit={({initial, current}) => {
const errorObj = {};
if (current.rate < 2) {
errorObj.rate = '评分低于 2 拒绝提交评分!';
}
if(Object.keys(errorObj).length > 0) {
const err = new Error();
err.filed = errorObj;
Notify.error({ title: '提交失败!', description: '请确认提交表单是否正确!' });
throw err;
}
Notify.success({
title: '提交成功!',
description: `表单提交成功,选择值为:${current.rate}!`,
});
}}
fields={{
rate: {
initialValue: 3,
children: <Rate style={{ fontSize: 14 }} character={<Icon type="star-on" />} />
},
}}
>
{({ fields, state, canSubmit }) => {
return (
<div>
<Row>
<Col fixed>{fields.rate}</Col>
</Row>
<Row>
<Col fixed>
<Button size="small" disabled={!canSubmit()} type="primary" htmlType="submit">提交</Button>
</Col>
</Row>
<Row>
<Col>
<pre style={{ padding: 10, marginTop: 10 }}>
{JSON.stringify(state.current, null, 2)}
</pre>
</Col>
</Row>
</div>
)
}}
</Form>
</div>
)
}
import React from 'react';
import { Rate, Divider, Icon, RadioGroup, Radio } from 'uiw';
export default function Demo() {
const [value, setValue] = React.useState(4);
return (
<div>
<Rate readOnly value={value} character={<Icon type="star-on" />} />
<Divider />
<RadioGroup value={value} onChange={(e) => {
setValue(e.target.value);
}}>
<Radio value="0">选择 0 星</Radio>
<Radio value="1">选择 1 星</Radio>
<Radio value="2">选择 2 星</Radio>
<Radio value="3">选择 3 星</Radio>
</RadioGroup>
</div>
)
}
按钮样式的单选组合。
import React from 'react';
import { Rate, Divider, Icon } from 'uiw';
export default function Demo() {
return (
<div>
<Rate readOnly value={3} />
<Divider />
<Rate readOnly character="☆" value={4} />
<Divider />
<Rate readOnly character={<Icon type="heart-on" />} value={3.5} />
<Divider />
<Rate readOnly character="✿" value={4} />
</div>
);
}
按钮样式的单选组合。
import React from 'react';
import { Rate, Divider } from 'uiw';
export default function Demo() {
return (
<div>
<Rate character="美" value={4} />
<Divider />
<Rate color="#d80000" character="好" value={3} />
<Divider />
<Rate character="传" value={4} />
</div>
);
}
import React from 'react';
import { Rate, Divider, Icon } from 'uiw';
export default function Demo() {
return (
<div>
<Rate allowHalf character={<Icon type="heart-on" />} value={3.3} />
<Divider />
<Rate allowHalf color="#d80000" character={<Icon type="heart-on" />} value={4.3} />
</div>
);
}
import React from 'react';
import { Rate, Divider, Icon } from 'uiw';
export default function Demo() {
return (
<div>
<Rate style={{ fontSize: 34 }} character={<Icon type="heart-on" />} value={3} />
</div>
)
}
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| value | 根据 value 进行比较,判断是否选中 | Number | - |
| count | star 总数 | Number | 5 |
| readOnly | 只读,无法进行交互 | Boolean | false |
| allowHalf | 是否允许半选 | Boolean | false |
| character | 自定义字符 | ReactNode | - |
| color | 自定义 Star 的颜色 | String | - |
| className | 自定义样式类名 | String | - |
| onChange | 数值改变时的回调,返回当前值 | Funtcion(e:Even,value) | - |
| onHoverChange | 鼠标经过时数值变化的回调 | Funtcion(e:Even,value) | - |
FAQs
Rate component
The npm package @uiw/react-rate receives a total of 325 weekly downloads. As such, @uiw/react-rate popularity was classified as not popular.
We found that @uiw/react-rate demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Feross Aboukhadijeh joins TBPN to discuss Socket's $60M Series C, 500%+ ARR growth, AI's impact on open source, and the rise in supply chain attacks.

Security News
OSV withdrew 157 OSV malware reports after automated false positives incorrectly flagged trusted npm and PyPI packages, sending bad records into tools that rely on OSV data.

Research
/Security News
TrapDoor crypto stealer hits 36 malicious packages across npm, PyPI, and Crates.io, targeting crypto, DeFi, AI, and security developers.