reactjs - 处理多个复选框 Reactjs 不起作用?
问题描述
我正在尝试使用 reactjs 创建多个复选框。但它不起作用我做错了什么?我有一个状态数组设置为 false 来检查每个复选框。我认为它有效,但它没有工作我如何解决它?
谢谢!
const GridResource = (resources) => {
const [checked, setChecked] = useState([...Array(6)].map(x=>false));
const handleCheckboxChange = (index) => {
checked[index] = !checked[index];
setChecked(checked);
};
const rows = [];
resources.map((resource, index)=> {
rows.push(
<HeaderTable >
<ChecboxGrid>
<label>
<Checkbox
checked={checked[index]}
onChange={()=> handleCheckboxChange(index)}
/>
</label>
</ChecboxGrid>
<TagElement> {resource.firstName}</TagElement>
<TagElement title={true}> {resource.lastName} </TagElement>
<TagElement title={true}> {resource.jobtitle} </TagElement>
</HeaderTable>
)
});
return (
<Container>
<HeaderTable>
<ChecboxGrid>
<label>
<Checkbox
checked={checked}
onChange={handleCheckboxChange}
/>
</label>
</ChecboxGrid>
</HeaderTable>
{rows}
</Container>
)
};
解决方案
不要改变状态,创建一个副本以便 React 可以重新渲染
const handleCheckboxChange = (index) => {
const copy = [...checked];
copy[index] = !copy[index];
setChecked(copy);
};
推荐阅读
- angular - 在 Angular Material Card 中加载数据
- mysql - MYSQL:使用 GROUP BY 逐行增加值
- javascript - 如何将服务中的数据分配给 JSON?
- java - 如何通过 IP 限制访问 tomcat 或 url-pattern 格式的特定动态 URL(仅 1-2 页)
- javascript - HTML/CSS/JS - 将图像添加到输入[type=submit]
- python - Python模糊字符串匹配作为相关样式表/矩阵
- java - java.lang.IllegalStateException:非法访问:此 Web 应用程序实例已停止
- html - 浏览器无法正确计算高度显示:flex inside position:fixed
- delphi - 我如何模拟日期和现在?
- jquery - 在 NProgress 期间禁用表单