【发布时间】:2023-04-02 19:14:01
【问题描述】:
我有一个带有复选框的表格,我想将选中的复选框的 ID 保存在状态中。这是我的代码。
输入看起来像这样(我使用 coreui,所以这是表的 scopedSlots 的内部):
selected: (item) => {
return (
<td style={{ width: '40px' }}>
<CInputCheckbox
className="mx-auto"
id={item.id}
onChange={(e) => handleSelect(e)}
/>
</td>
);}
剩下的就这些了:
const [selectedRows, setSelectedRows] = useState([]);
const handleSelect = (e) => {
const id = e.target.id;
const index = selectedRows.indexOf(id);
const rows = [...selectedRows];
if (index === -1) {
rows.push(id);
} else {
rows.split(index, 1);
}
setSelectedRows(rows);
};
最奇怪的事情发生了 - 在 chrome 的 react devtools 中,我看到第一个 id 被添加到 selectedRows 数组中,然后当我选择另一行时 - 数组中的前一项被覆盖。当我 console.log 我的 selectedRows 数组时,它总是显示空数组(即使我在 devtools 中看到有一个项目)。我不知道我在这里做错了什么。
【问题讨论】:
-
您在哪里登录?请给我们一个可重现的产生问题的代码示例。
标签: javascript reactjs core-ui