javascript - 如何解决 React 中带有复选框的数组设置?
问题描述
我在 react js 中的表中的复选框类型字段存在问题,我需要从表中选择项目并使用这些选定项目创建一个数组,我已经控制了它,但是在将项目合并到的函数中数组停止工作复选框内选中的标记。我留下部分代码以便理解。
这里是表格的界面,在这种情况下,检查被激活,因为在代码中我已经注释了将所选项目添加到数组的部分。
这段代码是我映射包含表数据的数组的地方,在操作中我调用 Checkbox 组件,该组件通过参数接收项目的 id 初始状态和函数 selectedItem。
const dataBuyersAgents = buyersAgents.map(
({ id, name, lastName, email, phone, estate, zipCode }) => {
return {
id: id,
name: `${name} ${lastName}`,
email: email,
phone: phone,
state: estate,
zipCode: zipCode,
action: <Checkbox id={id} initialState={false} handleChange={selectedItem} />,
};
},
这是 Ceckbox 组件。
const Checkbox = ({ initialState, id, handleChange }) => {
return (
<input
type="checkbox"
onChange={(e) => handleChange(id, e.target.checked)}
defaultChecked={initialState}
/>
);
};
而这里的SelectedItem函数接收选中项的id,并在表的数据数组中查找,如果成功,应该用来设置选中项的数组。那是它失败的地方,因为每次您尝试设置数组以添加新项目时都会停止工作,未标记复选框的选中状态,但是如果您添加项目并且有必要添加每个选定的项目,而且还要标记已选中在界面中。
const selectedItem = (value) => {
const id = parseInt(value); // id del item seleccionado
const item = buyersAgents.find((buyer) => buyer.id === id);
console.log('Item to add', item);
// setItemsSelected([...state, item ]);
};
我感谢任何可以帮助我解决此错误的人,因为我尝试了不同的方法和技术并且无法解决该错误。
解决方案
推荐阅读
- sql - SQL Server:用前一个单元格中的值填充空行
- android - SQLite,dabase.insert() 返回 -1
- redirect - 如何让重定向链在 Netlify 中工作?
- android - Android Studio:错误:程序类型已存在:android.support.v4.app.BackStackRecord$Op
- javascript - 如何防止精灵在 Matter.js 中被鼠标移动?
- c# - 为什么这个简单的 WPF 命令不起作用?
- c++ - 为什么当我使用变量存储数值结果而不是重新计算时,C++ 程序运行速度较慢?
- css - 如何使用块显示将thead 和 tbody 宽度保持在 100%
- javascript - 表单提交页面刷新后显示隐藏的 div
- c# - EF core 2.1 使用投影