在Ant Design框架中,可以通过antd的Checkbox组件来实现单选和多选的功能。其中,多选时需要将多个checkbox放在Checkbox.Group中。
要保存状态,可以使用React中的useState hook来记录选中的选项。当用户改变选择时,将会更新状态,并将其保存在本地存储中。
下面是一个示例代码:
import React, { useState } from 'react';
import { Checkbox } from 'antd';
const CheckboxGroup = Checkbox.Group;
function CheckboxDemo() {
const [checkedList, setCheckedList] = useState([]);
const [indeterminate, setIndeterminate] = useState(true);
const [checkAll, setCheckAll] = useState(false);
const plainOptions = ['Apple', 'Pear', 'Orange'];
const options = [
{ label: 'Apple', value: 'Apple' },
{ label: 'Pear', value: 'Pear' },
{ label: 'Orange', value: 'Orange' },
];
const onChange = (list) => {
setCheckedList(list);
setIndeterminate(!!list.length && list.length < options.length);
setCheckAll(list.length === options.length);
localStorage.setItem('checkboxList', JSON.stringify(list));
};
const onCheckAllChange = (e) => {
setCheckedList(e.target.checked ? plainOptions : []);
setIndeterminate(false);
setCheckAll(e.target.checked);
localStorage.setItem('checkboxList', JSON.stringify(e.target.checked ? plainOptions : []));
};
useEffect(() => {
const storedList = JSON.parse(localStorage.getItem('checkboxList'));
if (storedList) {
setCheckedList(storedList);
setIndeterminate(!!storedList.length && storedList.length < options.length);
setCheckAll(storedList.length === options.length);
}
}, []);
return (
Check all
);
}
export default CheckboxDemo;