checkboxGroup 的 onChange 确实不会触发子 checkbox 的 onChange,可以手动调一下import React from 'react'; import ReactDOM from 'react-dom'; import 'antd/dist/antd.css'; import './index.css'; import { Checkbox, Divider } from 'antd'; const CheckboxGroup = Checkbox.Group; const plainOptions = ['Apple', 'Pear', 'Orange']; const defaultCheckedList = ['Apple', 'Orange']; const App = () => { const [checkedList, setCheckedList] = React.useState(defaultCheckedList); const [indeterminate, setIndeterminate] = React.useState(true); const [checkAll, setCheckAll] = React.useState(false); const onChange = list => { setCheckedList(list); setIndeterminate(!!list.length && list.length < plainOptions.length); setCheckAll(list.length === plainOptions.length); console.log(list); }; const onCheckAllChange = e => { setCheckedList(e.target.checked ? plainOptions : []); setIndeterminate(false); setCheckAll(e.target.checked); onChange(e.target.checked ? plainOptions : []); }; return ( <> <Checkbox indeterminate={indeterminate} onChange={onCheckAllChange} checked={checkAll}> Check all </Checkbox> <Divider /> <CheckboxGroup options={plainOptions} value={checkedList} onChange={onChange} /> </> ); }; ReactDOM.render(<App />, document.getElementById('container'));
checkboxGroup 的 onChange 确实不会触发子 checkbox 的 onChange,可以手动调一下