鍍金池/ 問答/HTML/ antd 多選框Checkbox問題

antd 多選框Checkbox問題

初始化默認全部勾選上,發(fā)現(xiàn)最頂級勾選不上

https://codepen.io/pen/?editors=0010

以下是antd官方demo代碼

const { Checkbox } = antd;
const CheckboxGroup = Checkbox.Group;
const plainOptions = ['Apple', 'Pear', 'Orange'];
const defaultCheckedList = ['Apple', 'Pear', 'Orange'];

class App extends React.Component {
  state = {
    checkedList: defaultCheckedList,
    indeterminate: true,
    checkAll: false,
  };
  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>
    );
  }
  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,
    });
  }
}
ReactDOM.render(<App />, mountNode);

圖片描述

回答
編輯回答
故林

我知道怎么弄了,checked屬性可以解決

2018年6月1日 18:45
編輯回答
舊酒館

組件進入后手動執(zhí)行一次onChange

  componentDidMount(){
    this.onChange(this.state.checkedList)
  }
2017年1月18日 04:12