【发布时间】:2021-01-03 03:06:39
【问题描述】:
在react中,是否可以通过id属性或data-*等其他属性来管理多个复选框的状态?
目前我使用的是name 属性,但是在我的项目中,由于项目的复杂性,我需要使用id 或最好使用data-*,但似乎在@987654327 @这是不可能的。
还是我不明白?
import React, { useState } from 'react';
import someData from './someData'
function Checkbox({ name, id, label, checked, onChange }) {
return (
<span>
<input
type="checkbox"
name={name}
id={id}
checked={checked}
onChange={onChange}
/>
<span>{label}</span>
</span>
);
}
function App() {
const [isChecked, setIsChecked] = useState()
const onCheckboxChange = event => {
const target = event.currentTarget;
const name = target.name
const id = target.id;
const checked = target.checked;
setIsChecked({
...isChecked,
[id]: checked // using "id" seems to not work here.
})
}
return (
someData.map(item => {
return (
<Checkbox
name={item.name}
id={item.id}
label={item.name}
onChange={onCheckboxChange}
checked={isChecked}
/>
);
}
);
}
【问题讨论】:
标签: javascript html reactjs checkbox