我需要更改复选框的选中状态,但 useCallback 会多次重新渲染组件。我不明白它是如何工作的。我已经阅读了很多关于它的材料。
const AppealsList = () => {
const [isFiltered, setFiltered] = React.useState(false);
console.log('rerender');
const changeCheckBox = useCallback(() => {
setFiltered(!isFiltered);
}, [isFiltered]);
return (
<div className={classNames('appeals')}>
<div className={classNames('appeals__filter')}>
<input
checked={isFiltered}
className={classNames('appeals__input')}
type="checkbox"
readOnly={true}
/>
<label
onClick={changeCheckBox}
className={classNames('appeals__filter-label')} />
</div>
</div>
);
};
重新渲染的数量: