这是我的复选框组件进行多重选择。
const MultiselectCheckbox = ({ options, onChange, limitedCount }) => {
const [data, setData] = React.useState(options);
const toggle = index => {
const newData = [...data];
newData.splice(index, 1, {
label: data[index].label,
checked: !data[index].checked
});
setData(newData);
onChange(newData.filter(x => x.checked));
};
return (
<>
{data.map((item, index) => (
<label key={item.label}>
<input
readOnly
type="checkbox"
checked={item.checked || false}
onClick={() => toggle(index)}
/>
{item.label}
</label>
))}
</>
);
};
const options = [{ label: 'Item One' }, { label: 'Item Two' }];
ReactDOM.render(
<MultiselectCheckbox
options={options}
onChange={data => {
console.log(data);
}}
/>,
document.getElementById('root')
);
我想通过在代码中放置limitedCount来限制可以选择的项。例如props
- 限制选择计数= 1
- 只能选中一个复选框
- 限制选择计数= n
- 有多个n复选框可用
2条答案
按热度按时间pu3pd22g1#
您可以在切换函数中添加条件。
这是一个sample for reference。
kgsdhlau2#
很简单,只要在toggle函数中设置一个条件,检查数据数组的长度是否大于或等于limitedCount。2同时检查limitedCount属性是否已经传递给组件。
更新
此外,您还需要查看用户是否选中了该选项,因此请将检查传递到toggle函数。