Checkbox多选框

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

    • 单独使用可以表示两种状态之间的切换,和 类似。区别在于切换 switch 会直接触发状态改变,而 checkbox 一般用于状态标记,需要和提交操作配合。

    基本用法

    简单的 checkbox。

    Checkbox 多选框 - 图2

    联动 checkbox。

    1. import { Checkbox, Button } from 'antd';
    2. class App extends React.Component {
    3. state = {
    4. checked: true,
    5. disabled: false,
    6. };
    7. toggleChecked = () => {
    8. this.setState({ checked: !this.state.checked });
    9. };
    10. toggleDisable = () => {
    11. this.setState({ disabled: !this.state.disabled });
    12. };
    13. onChange = e => {
    14. console.log('checked = ', e.target.checked);
    15. this.setState({
    16. checked: e.target.checked,
    17. });
    18. };
    19. render() {
    20. this.state.disabled ? 'Disabled' : 'Enabled'
    21. }`;
    22. return (
    23. <div>
    24. <p style={{ marginBottom: '20px' }}>
    25. checked={this.state.checked}
    26. disabled={this.state.disabled}
    27. onChange={this.onChange}
    28. >
    29. {label}
    30. </Checkbox>
    31. </p>
    32. <p>
    33. <Button type="primary" size="small" onClick={this.toggleChecked}>
    34. {!this.state.checked ? 'Check' : 'Uncheck'}
    35. </Button>
    36. <Button
    37. style={{ marginLeft: '10px' }}
    38. type="primary"
    39. size="small"
    40. onClick={this.toggleDisable}
    41. >
    42. {!this.state.disabled ? 'Disable' : 'Enable'}
    43. </Button>
    44. </p>
    45. </div>
    46. );
    47. }
    48. }
    49. ReactDOM.render(<App />, mountNode);

    在实现全选效果时,你可能会用到 indeterminate 属性。

    Checkbox 多选框 - 图4

    不可用

    1. import { Checkbox } from 'antd';
    2. <div>
    3. <Checkbox defaultChecked={false} disabled />
    4. <Checkbox defaultChecked disabled />
    5. </div>,
    6. mountNode,
    7. );

    方便的从数组生成 Checkbox 组。

    Checkbox 多选框 - 图6

    布局

    Checkbox.Group 内嵌 Checkbox 并与 Grid 组件一起使用,可以实现灵活的布局。

    1. import { Checkbox, Row, Col } from 'antd';
    2. function onChange(checkedValues) {
    3. console.log('checked = ', checkedValues);
    4. }
    5. ReactDOM.render(
    6. <Checkbox.Group style={{ width: '100%' }} onChange={onChange}>
    7. <Row>
    8. <Col span={8}>
    9. <Checkbox value="A">A</Checkbox>
    10. </Col>
    11. <Col span={8}>
    12. <Checkbox value="B">B</Checkbox>
    13. </Col>
    14. <Col span={8}>
    15. <Checkbox value="C">C</Checkbox>
    16. </Col>
    17. <Col span={8}>
    18. <Checkbox value="D">D</Checkbox>
    19. </Col>
    20. <Col span={8}>
    21. <Checkbox value="E">E</Checkbox>
    22. </Col>
    23. </Row>
    24. </Checkbox.Group>,
    25. mountNode,

    Checkbox

    Checkbox Group

    方法

    Checkbox