【发布时间】:2020-05-23 09:43:48
【问题描述】:
我正在渲染多个复选框:
className, content, visible, handleFeaturesChange}= props;
...
<FormCheck type="checkbox" label={"parking"} name={"parking"} onChange={handleFeaturesChange}></FormCheck>
<FormCheck type="checkbox" label={"Laundry"} name={"laundry"} onChange={handleFeaturesChange}></FormCheck>
来自父组件:
function handleFeaturesChange(event) {
// event.preventDefault();
const {name, checked} = event.target
setFeatures({
...features,
[name]: checked
})
}
但这会导致状态被覆盖 onChange 以便在任何情况下都只有一个复选框被记录为已选中。
如何让多个复选框协同工作?
【问题讨论】:
-
对于任何在谷歌上搜索的人,我的解决方案是为每个变量(停车、洗衣等)添加单独的 useState 挂钩,并选择在 handleFeaturesChange 中使用哪个 setState。例如,在一个挂钩中初始化所有内容并通过“checkedItem.parking”进行引用,即使使用以下所有解决方案也无法正常工作。
标签: reactjs checkbox react-hooks