自在猫先生 2023-06-20 10:46 采纳率: 62.9%
浏览 16
已结题

react+andtui组件实现table中加勾选框,点击选中就选中这一行的数据

我在table中加了勾选框没有实现点击这一行就选中这一行而是选中了所有的,感觉是缺少什么唯一值

   const columns = [
        {
          title: '方案编号',
          dataIndex: 'solutionNo',
          key: 'col1',
          with:'200px',
        },
        {
          title: '方案名称',
          dataIndex: 'solutionName',
          key: 'col2',
          with:'200px',
        },
        {
          title: '项目名称',
          dataIndex: 'interfaceName',
          key: 'col3',
          with:'200px',
        },
        {
            title: '窗体定义',
            dataIndex: 'interfaceName',
            key: 'col4',
            with:'200px',
          },
      
      ];

// // 处理当用户选择行时的事件
    const handleRowSelection = record => {
      debugger
      const newSelectedRows = [...selectedRows];
      if (newSelectedRows.some(row => row.key === record.key)) {
        // 如果记录已经被选中,将其从所选记录中删除
        setSelectedRows(newSelectedRows.filter(row => row.key !== record.key));
      } else {
        // 否则将其添加到所选记录中
        newSelectedRows.push(record);
        setSelectedRows(newSelectedRows);
      }
    };
 <Table
            dataSource={loctiondata}
            columns={columns}
            rowSelection={{
              type: 'checkbox',
              selectedRowKeys: selectedRows.map(row => row.key),
              onChange: handleRowSelection,
            }}
          />

  • 写回答

4条回答 默认 最新

  • MarkHan_ 2023-06-20 10:57
    关注
    
    const loctiondata = [
      { key: '1', solutionNo: '1', solutionName: 'Solution 1', interfaceName: 'Interface 1' },
      { key: '2', solutionNo: '2', solutionName: 'Solution 2', interfaceName: 'Interface 2' },
      // 添加更多行...
    ];
    
    const columns = [
      {
        title: '方案编号',
        dataIndex: 'solutionNo',
        key: 'col1',
        width: '200px',
      },
      {
        title: '方案名称',
        dataIndex: 'solutionName',
        key: 'col2',
        width: '200px',
      },
      {
        title: '项目名称',
        dataIndex: 'interfaceName',
        key: 'col3',
        width: '200px',
      },
      {
        title: '窗体定义',
        dataIndex: 'interfaceName',
        key: 'col4',
        width: '200px',
      },
    ];
    
    // 处理当用户选择行时的事件
    const handleRowSelection = record => {
      const newSelectedRows = [...selectedRows];
      if (newSelectedRows.some(row => row.key === record.key)) {
        // 如果记录已经被选中,将其从所选记录中删除
        setSelectedRows(newSelectedRows.filter(row => row.key !== record.key));
      } else {
        // 否则将其添加到所选记录中
        newSelectedRows.push(record);
        setSelectedRows(newSelectedRows);
      }
    };
    
    <Table
      dataSource={loctiondata}
      columns={columns}
      rowSelection={{
        type: 'checkbox',
        selectedRowKeys: selectedRows.map(row => row.key),
        onChange: handleRowSelection,
      }}
    />
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 6月28日
  • 已采纳回答 6月20日
  • 创建了问题 6月20日

悬赏问题

  • ¥15 上传图片时提交的存储类型
  • ¥15 Ubuntu开机显示器只显示kernel,是没操作系统(相关搜索:显卡驱动)
  • ¥15 VB.NET如何绘制倾斜的椭圆
  • ¥15 在rhel8中安装qemu-kvm时遇到“cannot initialize crypto:unable to initialize gcrypt“报错”
  • ¥15 arbotix没有/cmd_vel话题
  • ¥15 paddle库安装时报错提示需要安装common、dual等库,安装了上面的库以后还是显示报错未安装,要怎么办呀?
  • ¥20 找能定制Python脚本的
  • ¥15 odoo17的分包重新供应路线如何设置?可从销售订单中实时直接触发采购订单或相关单据
  • ¥15 用C语言怎么判断字符串的输入是否符合设定?
  • ¥15 通信专业本科生论文选这两个哪个方向好研究呀