CheckBox多选框

多选框。

何时使用

  • 在一组可选项中进行多项选择时;

  • 单独使用可以表示两种状态之间的切换,和 Switch 类似。

代码演示

CheckBox 多选框 - 图1

基本使用

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

CheckBox 多选框 - 图2

绑定数据源

绑定数据源

  1. import { DataSet, CheckBox } from 'choerodon-ui/pro';
  2. function handleChange({ name, value, oldValue }) {
  3. console.log(`[dataset:${name}]`, value, '[oldValue]', oldValue);
  4. }
  5. const data = [{
  6. bind: 'A',
  7. }];
  8. class App extends React.Component {
  9. ds = new DataSet({
  10. fields: [
  11. { name: 'bind', multiple: true },
  12. { name: 'bind2', type: 'boolean', label: '是否开启' }, // 组件没有children会用label替代
  13. { name: 'bind3', type: 'boolean', trueValue: 'Y', falseValue: 'N' },
  14. ],
  15. data,
  16. events: {
  17. update: handleChange,
  18. },
  19. });
  20. render() {
  21. return (
  22. <div>
  23. <CheckBox dataSet={this.ds} name="bind" value="A">A</CheckBox>
  24. <CheckBox dataSet={this.ds} name="bind" value="B">B</CheckBox>
  25. <CheckBox dataSet={this.ds} name="bind" value="C">C</CheckBox>
  26. <CheckBox dataSet={this.ds} name="bind2" />
  27. <CheckBox dataSet={this.ds} name="bind3">是否展开</CheckBox>
  28. </div>
  29. );
  30. }
  31. }
  32. ReactDOM.render(
  33. <App />,
  34. mountNode
  35. );

CheckBox 多选框 - 图3

按钮显示效果

显示成按钮。

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

CheckBox 多选框 - 图4

受控复选框

受控复选框

  1. import { CheckBox } from 'choerodon-ui/pro';
  2. class App extends React.Component {
  3. constructor(props) {
  4. super(props);
  5. this.state = {
  6. values: ['A'],
  7. };
  8. }
  9. handleChange = (value, oldValue) => {
  10. console.log('[controlled]', value, '[oldValues]', oldValue);
  11. const { values } = this.state;
  12. if (value) {
  13. values.push(value);
  14. } else {
  15. values.splice(values.indexOf(value), 1);
  16. }
  17. this.setState({
  18. values,
  19. });
  20. }
  21. render() {
  22. const { values } = this.state;
  23. return (
  24. <div>
  25. <CheckBox
  26. name="controlled"
  27. value="A"
  28. checked={values.indexOf('A') !== -1}
  29. onChange={this.handleChange}
  30. >A
  31. </CheckBox>
  32. <CheckBox
  33. name="controlled"
  34. value="B"
  35. checked={values.indexOf('B') !== -1}
  36. onChange={this.handleChange}
  37. >B
  38. </CheckBox>
  39. <CheckBox
  40. name="controlled"
  41. value="C"
  42. checked={values.indexOf('C') !== -1}
  43. onChange={this.handleChange}
  44. >C
  45. </CheckBox>
  46. </div>
  47. );
  48. }
  49. }
  50. ReactDOM.render(
  51. <App />,
  52. mountNode
  53. );

CheckBox 多选框 - 图5

只读

只读。

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

API

Input[type=checkbox]

参数说明类型默认值
unCheckedValue未选中时的值any
unCheckedChildren非选中时的内容string|ReactNode
indeterminate中间状态booleanfalse

更多属性请参考 Radio