1

官网的组件使用方式(checkbox 全选与单选)组件使用方法
示例代码:

import { Checkbox } from 'antd';

const CheckboxGroup = Checkbox.Group;

const plainOptions = ['Apple', 'Pear', 'Orange'];
const defaultCheckedList = ['Apple', 'Orange'];

class App extends React.Component {
  state = {
    checkedList: defaultCheckedList,
    indeterminate: true,
    checkAll: false,
  };

  onChange = checkedList => {
    this.setState({
      checkedList,
      indeterminate: !!checkedList.length && checkedList.length < plainOptions.length,
      checkAll: checkedList.length === plainOptions.length,
    });
  };

  onCheckAllChange = e => {
    this.setState({
      checkedList: e.target.checked ? plainOptions : [],
      indeterminate: false,
      checkAll: e.target.checked,
    });
  };

  render() {
    return (
      <div>
        <div style={{ borderBottom: '1px solid #E9E9E9' }}>
          <Checkbox
            indeterminate={this.state.indeterminate}
            onChange={this.onCheckAllChange}
            checked={this.state.checkAll}
          >
            Check all
          </Checkbox>
        </div>
        <br />
        <CheckboxGroup
          options={plainOptions}
          value={this.state.checkedList}
          onChange={this.onChange}
        />
      </div>
    );
  }
}

ReactDOM.render(<App />, mountNode);

那么如果checkbox的选项数据是后端回传的应该如何处理呢?也就是示例代码中plainOptions与defaultCheckedList的数据是由后端回传的。

并且真实情况plainOptions与defaultCheckedList中的数据不会这么单一,会包含一些html标签。

codingfly 441
2019-08-08 提问
1 个回答
0

已采纳

plainOptions和defaultCheckedList写在state里面,初始化为空数组,然后在didmount里面请求后端的数据setState就行了,defaultCheckedList肯定是单一的key,plainOptions复杂的话自定义渲染就行了

撰写答案

推广链接