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

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日