在React原生中,多个复选框相互覆盖可以通过以下步骤解决:
以下是一个示例代码:
import React, { useState } from 'react';
function CheckboxGroup() {
const [checkboxes, setCheckboxes] = useState([
{ id: 1, label: 'Checkbox 1', checked: false },
{ id: 2, label: 'Checkbox 2', checked: false },
{ id: 3, label: 'Checkbox 3', checked: false },
]);
const handleCheckboxChange = (id) => {
const updatedCheckboxes = checkboxes.map((checkbox) => {
if (checkbox.id === id) {
return { ...checkbox, checked: !checkbox.checked };
}
return checkbox;
});
setCheckboxes(updatedCheckboxes);
};
return (
<div>
{checkboxes.map((checkbox) => (
<label key={checkbox.id}>
<input
type="checkbox"
checked={checkbox.checked}
onChange={() => handleCheckboxChange(checkbox.id)}
/>
{checkbox.label}
</label>
))}
</div>
);
}
export default CheckboxGroup;
在上述示例中,我们使用useState钩子来管理复选框的选中状态。每个复选框都有一个唯一的id,通过map函数遍历复选框数组来渲染复选框列表。当复选框的选中状态发生变化时,调用handleCheckboxChange函数更新对应复选框的选中状态。
领取专属 10元无门槛券
手把手带您无忧上云