在不确定状态下点击复选框时如何将状态更改为 unchecked/false。反应 MUI 复选框
How to change state to unchecked/false when tapping on a checkbox in indeterminate state. React MUI Checkbox
我有一个 header 复选框,它应该充当 select 全部或取消 select 全部。当一些记录被 selected 但不是全部时,我也有一个不确定的状态。
我想要的行为是:
当用户在 indeterminate 状态下点击 header 复选框时,它应该取消 select 所有记录。但相反,它是 select 全部。
<Checkbox
indeterminate={numSelected > 0 && numSelected < rowCount}
checked={rowCount > 0 && numSelected === rowCount}
onChange={onSelectAllClick}
/>
下面是 onSelectAllClick
的代码
const onSelectAllClick= (event) => {
if (event.target.checked) {
const newSelectedRecords= records.map((r) => n.serialNumber);
setSelected(newSelectedRecords);
} else {
setSelected([]);
}
};
numSelected 是行数 selected.
Description Image of Behavior
// can useMemo
const indeterminate = numSelected > 0 && numSelected < rowCount
const onSelectAllClick= (event) => {
if (event.target.checked && !indeterminate ) {
const newSelectedRecords= records.map((r) => n.serialNumber);
setSelected(newSelectedRecords);
} else {
setSelected([]);
}
};
<Checkbox
indeterminate={indeterminate}
checked={rowCount > 0 && numSelected === rowCount}
onChange={onSelectAllClick}/>
然后你可以像这样在 onChange 上添加条件
我有一个 header 复选框,它应该充当 select 全部或取消 select 全部。当一些记录被 selected 但不是全部时,我也有一个不确定的状态。
我想要的行为是:
当用户在 indeterminate 状态下点击 header 复选框时,它应该取消 select 所有记录。但相反,它是 select 全部。
<Checkbox
indeterminate={numSelected > 0 && numSelected < rowCount}
checked={rowCount > 0 && numSelected === rowCount}
onChange={onSelectAllClick}
/>
下面是 onSelectAllClick
const onSelectAllClick= (event) => {
if (event.target.checked) {
const newSelectedRecords= records.map((r) => n.serialNumber);
setSelected(newSelectedRecords);
} else {
setSelected([]);
}
};
numSelected 是行数 selected.
Description Image of Behavior
// can useMemo
const indeterminate = numSelected > 0 && numSelected < rowCount
const onSelectAllClick= (event) => {
if (event.target.checked && !indeterminate ) {
const newSelectedRecords= records.map((r) => n.serialNumber);
setSelected(newSelectedRecords);
} else {
setSelected([]);
}
};
<Checkbox
indeterminate={indeterminate}
checked={rowCount > 0 && numSelected === rowCount}
onChange={onSelectAllClick}/>
然后你可以像这样在 onChange 上添加条件