Все ваши флажки имеют одинаковые значения id
и htmlFor
. Каждой паре id
и htmlFor
нужны уникальные значения:
const Checkbox = ({ checked, onchange, label, id }) => (
<label htmlFor={id}>
<div className="checkbox-container">
<input
className="checkbox-hidden"
id={id}
type="checkbox"
checked={checked}
onChange={onchange}
/>
<div className="checkbox-styled">
<svg
className="checkbox-icon"
style={{ visibility: checked ? "visible" : "hidden" }}
viewBox="0 0 24 24"
>
<polyline points="20 6 9 17 4 12" />
</svg>
</div>
</div>
<span>{label}</span>
</label>
);
Пример использования:
<Checkbox
id={`checkbox${idx}`}
checked={idx === this.state.isChecked}
onchange={() => this.toggleCheckbox(idx)}
label={item}
/>