UNPKG

zarm-web

Version:
186 lines (152 loc) 4.51 kB
# 单选框 Radio ## 基本用法 ```jsx import { Radio } from 'zarm-web'; ReactDOM.render(<Radio>Radio</Radio>, mountNode); ``` ## 禁用状态 ```jsx import { Radio, Button } from 'zarm-web'; class Demo extends React.Component { state = { disabled: true, }; toggleDisabled = () => { this.setState({ disabled: !this.state.disabled, }); }; render() { const { disabled } = this.state; return ( <> <div className="rows"> <Radio disabled={disabled}>Radio</Radio> </div> <div className="rows"> <Radio checked disabled={disabled}>Checked Radio</Radio> </div> <div className="rows"> <Button theme="primary" onClick={this.toggleDisabled}>toggleDisabled</Button> </div> </> ); } } ReactDOM.render(<Demo />, mountNode); ``` ## 组合使用 ```jsx import { Radio } from 'zarm-web'; class Demo extends React.Component { state = { value: 1, }; onChange = (value) => { console.log('radio checked', value); this.setState({ value }); }; render() { return ( <> <div className="rows"> <Radio.Group value={this.state.value} onChange={this.onChange}> <Radio value={1}>A</Radio> <Radio value={2}>B</Radio> <Radio value={3}>C</Radio> <Radio value={4}>D</Radio> </Radio.Group> </div> <div className="rows"> <Radio.Group disabled defaultValue={2}> <Radio value={1}>A</Radio> <Radio value={2}>B</Radio> <Radio value={3}>C</Radio> <Radio value={4}>D</Radio> </Radio.Group> </div> </> ); } } ReactDOM.render(<Demo />, mountNode); ``` ## 按钮样式 ```jsx import { Radio } from 'zarm-web'; ReactDOM.render( <> <div className="rows"> <Radio.Group type="button"> <Radio value="选项一">选项一</Radio> <Radio value="选项二">选项二</Radio> <Radio value="选项三">选项三</Radio> </Radio.Group> </div> <div className="rows"> <Radio.Group type="button"> <Radio value="选项一">选项一</Radio> <Radio disabled value="选项二">选项二</Radio> <Radio value="选项三">选项三</Radio> </Radio.Group> </div> <div className="rows"> <Radio.Group type="button" disabled> <Radio value="选项一">选项一</Radio> <Radio value="选项二">选项二</Radio> <Radio value="选项三" checked>选项三</Radio> </Radio.Group> </div> </>, mountNode, ); ``` ## 三种大小 ```jsx import { Radio } from 'zarm-web'; ReactDOM.render( <> <div className="rows"> <Radio.Group type="button" size="lg"> <Radio value="选项一">选项一</Radio> <Radio value="选项二">选项二</Radio> <Radio value="选项三">选项三</Radio> </Radio.Group> </div> <div className="rows"> <Radio.Group type="button" size="md"> <Radio value="选项一">选项一</Radio> <Radio value="选项二">选项二</Radio> <Radio value="选项三">选项三</Radio> </Radio.Group> </div> <div className="rows"> <Radio.Group type="button" size="sm"> <Radio value="选项一">选项一</Radio> <Radio value="选项二">选项二</Radio> <Radio value="选项三">选项三</Radio> </Radio.Group> </div> </>, mountNode, ); ``` ## API | 属性 | 类型 | 默认值 | 说明 | | :--- | :--- | :--- | :--- | | value | string \| number | - | 值 | | checked | boolean | - | 当前是否选中 | | defaultChecked | boolean | - | 初始是否选中 | | disabled | boolean | false | 是否禁用 | | onChange | (e: ChangeEvent<HTMLInputElement>) => void | - | 值变化时触发的回调函数 | Radio.Group | 属性 | 类型 | 默认值 | 说明 | | :--- | :--- | :--- | :--- | | type | string | - | 显示类型,可选值 `button` | | value | string \| number | - | 选中值 | | defaultValue | string \| number | - | 初始选中值 | | disabled | boolean | false | 是否禁用 | | block | boolean | false | 子项是否为块级元素 | | onChange | (value?: string \| number) => void | - | 值变化时触发的回调函数 | | size | string | 'md' | 按钮类型时的大小,可选值为 `lg`、`md`、`sm` | | shape | string | 'radius' | 按钮类型时的形状,可选值 `rect`, `radius`, `round` |