AntD rowSelection 功能组件

Posted

技术标签:

【中文标题】AntD rowSelection 功能组件【英文标题】:AntD rowSelection functional Component 【发布时间】:2021-01-03 05:10:55 【问题描述】:

我正在尝试获取表格中的单个元素键。 但我得到 undefined 我怎样才能获取 id?

https://ant.design/components/table/#components-table-demo-expand-children

const [select, setSelect] = useState(
    selectedRowKeys: [],
    loading: false,
  );

console.log("selectedRowKeys", select);

const  selectedRowKeys, loading  = select;

const rowSelection = 
selectedRowKeys,
onChange: (selectedRowKeys) => 
  setSelect(
    ...select,
    selectedRowKeys: [...select.selectedRowKeys, selectedRowKeys],
  );
,
;

return (
<div>
  <Table
    columns=columns
    rowSelection=rowSelection
    dataSource=dataSource
    loading=!props.employeeList
  />
</div>);

Here's a screenshot of console.log()

【问题讨论】:

【参考方案1】:

你需要在dataSource数组的每个对象上添加一个key prop

const dataSource = [
  
    key: 1,
    name: `Edward King 1`,
    age: 32,
    address: `London, Park Lane no. 1`
  ,
  
    key: 2,
    name: `Edward King 2`,
    age: 35,
    address: `London, Park Lane no. 2`
  
];

然后在您的rowSelection 对象中,您需要删除此代码[...select.selectedRowKeys, selectedRowKeys],如果您取消选择一个项目并再次选择它并导致重复,这将推送到状态。应该是:

const rowSelection = 
    selectedRowKeys,
    onChange: (selectedRowKeys) => 
      setSelect(
        ...select,
        selectedRowKeys: selectedRowKeys
      );
    
;

查看您的工作代码here

【讨论】:

以上是关于AntD rowSelection 功能组件的主要内容,如果未能解决你的问题,请参考以下文章

antd源码解析——在线换肤功能

antd的upload组件上传功能踩坑

antd树选择组件筛选功能(Tree&TreeSelect)

antd源码分析之——标签页(tabs 2.Tabs关键组件功能实现)

react 手写优化实现 antd 倒计时功能组件( 附源码)

react 手写优化实现 antd 倒计时功能组件( 附源码)