枳在淮北 2024-03-08 11:12 采纳率: 25%
浏览 18

ProTable嵌套表格怎么实现单选

ProTable嵌套表格怎么实现单选
目前的情况是可以选中两个

img

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-03-08 11:13
    关注

    引自免费微信小程序:皆我百晓生

    在Ant Design Pro的ProTable中实现嵌套表格单选,可以通过以下方式实现:

    1. 首先,在数据结构层面,确保你的子表格数据项中包含一个用于标识是否被选中的字段,例如selected

    2. 在子表格组件(通常是render列)中添加Radio单选框,并通过onChange事件处理函数更新对应行的数据,使其选中状态改变。

    import { Radio } from 'antd';
    import ProTable from '@ant-design/pro-table';
    
    // 假设这是你的数据结构,其中包含了子表格数据
    const dataSource = [
      {
        key: '1',
        name: 'Parent 1',
        children: [
          { key: '1-1', name: 'Child 1-1', selected: false },
          { key: '1-2', name: 'Child 1-2', selected: false },
        ],
      },
      // ...
    ];
    
    // 子表格的渲染方法
    const renderSubTable = (subData) => (
      <ProTable
        rowKey="key"
        columns={[
          {
            title: '名称',
            dataIndex: 'name',
            render: (_, record) => (
              <Radio 
                checked={record.selected}
                onChange={() => handleSelect(record.key)}
              >
                {record.name}
              </Radio>
            ),
          },
          // 其他列...
        ]}
        dataSource={subData}
        pagination={false}
      />
    );
    
    // 单选处理函数
    const handleSelect = (key) => {
      // 这里你需要根据实际情况更新数据源,将当前选中的子项设置为selected=true,其他子项为false
      const updatedDataSource = dataSource.map(item => ({
        ...item,
        children: item.children.map(child =>
          child.key === key ? { ...child, selected: true } : { ...child, selected: false }
        )
      }));
      
      // 更新到你的state或props中
      setDataSource(updatedDataSource);
    };
    
    return (
      <ProTable
        rowKey="key"
        columns={[
          // 主表格的其他列...
          {
            title: '子表格',
            dataIndex: 'children',
            render: (children) => renderSubTable(children),
          },
        ]}
        dataSource={dataSource}
      />
    );
    

    以上代码示例仅供参考,实际应用时请根据你的项目需求进行调整。核心思路是利用Radio组件的onChange事件来同步更新数据源中对应的选中状态,并在渲染时依据这个状态显示选中与否。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月8日

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据