javascript - 尝试将两个值绑定到 React Virtualized Table 中的复选框的单个 isSelected 值,复选框停止工作
问题描述
我正在开发一个使用 React Virtualized Table and Rows 来显示项目信息的项目。
编写了一个预先存在的函数来处理与项目数据属性相关的复选框的选中状态isSelected
。
我要做的是将复选框的选中状态设置为每个项目的初始数据值archived
,然后在每次单击时切换isSelected
和值。archived
我尝试通过在 handleSelect 函数中更改!isChecked
为archived
,然后isChecked={row.archived}
在 selectCellRenderer 中使用来做到这一点,但这只会使复选框变砖,因此您根本无法切换它,而且我不确定如何修复它。
父函数作为道具传递:
handleSelect = ({ index, rowData }) => {
const { selected } = this.state;
const { id, isChecked, archived } = rowData;
const newSelected = !isChecked ? [...selected, id] : selected.filter(item => item !== id);
this.setState({ selected: newSelected });
};
与父级通信的子函数:
const selectCellRenderer = ({ rowIndex: index, rowData }) => (
<Checkbox isChecked={rowData.isChecked} onChange={() => onSelect({ index, rowData })} />
);
每个项目数据如下所示:
{
archived: false,
created_at: "2021-06-04T01:48:25.438Z",
id: "1234567-891-4636-8c04-97a142fa457d",
isChecked: false
}
解决方案
推荐阅读
- android - Android 工作室背景横幅颜色
- c# - 在随机数猜测生成器中实现再次播放功能
- python - 熊猫系列在条件下添加上一行
- apache-spark - ColumnarToRow 如何在 Spark 中进行高效操作
- reactjs - ES lint 需要 redux 状态作为 useEffect 依赖项,这将导致无限重新渲染
- python - JSONDecodeError("期望值", s, err.value) 从无
- r - seq_len 2 参数中的错误传递给'seq_len',这需要 1 在 R 中使用 foreach 包?
- python - 如何在 Python 中访问和计算 Json 文件属性的值?
- python - 回文分区
- matlab - 如何在频域做水印?