这是我第一次开发react应用程序,我尝试在表格的每一行实现复选框,并检查哪些行被选中。
我使用useState
钩子来生成checked和onChange事件,但是当我选中然后取消选中复选框时,值似乎没有刷新。
我想问一下如何添加一个逻辑来删除钩子上未勾选的值。
T1复选框A-选中复选框B-选中选中Map-A、B
T2复选框B-未选中CheckedMap-A,B//未选中的复选框B也存储在CheckedMap中
谢谢你的帮助。
export default function({ infinite }) {
const [checkedMap, setCheckedMap] = useState(new Map());
}
const handleCheckedChange = transaction_seq => {
let modifiedMap = checkedMap;
modifiedMap.set(transaction_seq, !checkedMap.get(transaction_seq));
setCheckedMap(modifiedMap);
};
const columns = [
{
Header: "Transaction(s)",
className: "left",
columns: [
{
id: "checkbox",
accessor: "checkbox",
Cell: ({ row }) => {
return (
<input
type="checkbox"
className="checkbox"
checked={checkedMap.get(row.original.transaction_seq)}
onChange={() =>
handleCheckedChange(row.original.transaction_seq)
}
4条答案
按热度按时间xzv2uavs1#
这是如何使用react
useState
钩子控制复选框的方法。bxfogqkk2#
对函数使用onClick可能会出错。请改用onChange:
oug3syen3#
您可以在Map中检查校验状态,然后决定是设置值还是删除值
alen0pnh4#
当你使用onChange时你得到一个事件对象。使用那个事件来检查复选框是否被选中
然后,在函数中使用该事件检查状态