Radio单选框

表单控件。

何时使用

代码演示

Radio 单选框 - 图1

基本使用

请确保Radio具有相同的name属性以实现单选功能。

  1. import { Radio } from 'choerodon-ui/pro';
  2. function handleChange(value) {
  3. console.log('[basic]', value);
  4. }
  5. ReactDOM.render(
  6. <div>
  7. <Radio name="base" value="A" onChange={handleChange} defaultChecked>A</Radio>
  8. <Radio name="base" value="B" onChange={handleChange}>B</Radio>
  9. <Radio name="base" value="C" onChange={handleChange}>C</Radio>
  10. </div>,
  11. mountNode
  12. );

Radio 单选框 - 图2

绑定数据源

绑定数据源

  1. import { DataSet, Radio } from 'choerodon-ui/pro';
  2. function handleDataSetChange({ value, oldValue }) {
  3. console.log('[dataset newValue]', value, '[oldValue]', oldValue);
  4. }
  5. const data = [{ bind: 'A' }];
  6. class App extends React.Component {
  7. ds = new DataSet({
  8. data,
  9. fields: [
  10. { name: 'bind' },
  11. ],
  12. events: {
  13. update: handleDataSetChange,
  14. },
  15. });
  16. render() {
  17. return (
  18. <div>
  19. <Radio dataSet={this.ds} name="bind" value="A">A</Radio>
  20. <Radio dataSet={this.ds} name="bind" value="B">B</Radio>
  21. <Radio dataSet={this.ds} name="bind" value="C">C</Radio>
  22. </div>
  23. );
  24. }
  25. }
  26. ReactDOM.render(
  27. <App />,
  28. mountNode
  29. );

Radio 单选框 - 图3

按钮显示效果

显示成按钮。

  1. import { Radio } from 'choerodon-ui/pro';
  2. function handleChange(value, oldValue) {
  3. console.log('[button]', value, '[oldValue]', oldValue);
  4. }
  5. ReactDOM.render(
  6. <div>
  7. <Radio mode="button" name="base" value="A" onChange={handleChange} defaultChecked>A</Radio>
  8. <Radio mode="button" name="base" value="B" onChange={handleChange}>B</Radio>
  9. <Radio mode="button" name="base" value="C" onChange={handleChange}>C</Radio>
  10. </div>,
  11. mountNode
  12. );

Radio 单选框 - 图4

受控单选框

受控单选框

  1. import { Radio } from 'choerodon-ui/pro';
  2. class App extends React.Component {
  3. constructor(props) {
  4. super(props);
  5. this.state = {
  6. value: 'A',
  7. };
  8. }
  9. handleChange = (value) => {
  10. console.log('[controlled]', value, '[oldValue]', this.state.value);
  11. this.setState({
  12. value,
  13. });
  14. }
  15. render() {
  16. const { value } = this.state;
  17. return (
  18. <div>
  19. <Radio name="controlled" value="A" checked={value === 'A'} onChange={this.handleChange}>A</Radio>
  20. <Radio name="controlled" value="B" checked={value === 'B'} onChange={this.handleChange}>B</Radio>
  21. <Radio name="controlled" value="C" checked={value === 'C'} onChange={this.handleChange}>C</Radio>
  22. </div>
  23. );
  24. }
  25. }
  26. ReactDOM.render(
  27. <App />,
  28. mountNode
  29. );

Radio 单选框 - 图5

只读

只读。

  1. import { Radio, DataSet } from 'choerodon-ui/pro';
  2. const data = [{ rd: 'C' }];
  3. class App extends React.Component {
  4. ds = new DataSet({
  5. data,
  6. fields: [
  7. { name: 'rd', readOnly: true },
  8. ],
  9. });
  10. render() {
  11. return (
  12. <div>
  13. <Radio name="rd" disabled>A</Radio>
  14. <Radio name="rd" readOnly>B</Radio>
  15. <Radio dataSet={this.ds} name="rd" value="C">C</Radio>
  16. </div>
  17. );
  18. }
  19. }
  20. ReactDOM.render(
  21. <App />,
  22. mountNode
  23. );

API

Input[type=radio]

参数说明类型默认值
checked<受控>是否选中boolean
defaultChecked初始是否选中booleanfalse
mode显示模式,可选值:box buttonstringbox

更多属性请参考 Field