【问题标题】:Antd Design Table, How to pass whether row selected or not selected to expandRowRenderAnt Design Table,如何将是否选择行传递给expandedRowRender
【发布时间】:2020-07-21 09:14:56
【问题描述】:

我在 ant 设计中使用嵌套表。如果我在顶级表中选择一行,它应该为该行选择嵌套表中的所有值。如果我取消选择嵌套表中的任何一行,它应该取消选择顶级表中的行。

我正在尝试使用状态来控制 selectedRowKeys,但无法管理所有情况

【问题讨论】:

  • 请提供您想要实现的代码或屏幕截图。
  • 谢谢,我已经添加了图像,ABC DEF 是最顶层的行,如果我选择该行,它应该选择嵌套表中的所有行。如果嵌套表中的任何行被取消选择,那么顶级行应该被取消选择。
  • 抱歉回复晚了。工作让我很忙。请参阅下文,了解您所需 UX 的可能解决方案。

标签: reactjs antd


【解决方案1】:

您可以通过Table 组件上的rowSelection 属性实现所需的用户体验。您必须确定 onSelect 发生了 4 种可能情况中的哪一种(选择父行、取消选择父行、选择子行或取消选择子行),然后通过状态更新程序以编程方式设置 rowSelectionKeys

您还需要从 Table dataSource 创建一个哈希映射 (childToParentMap),以便跟踪哪些行是子行及其关联的父行,以便在取消选择任何行时停用父行一个孩子。

请参阅下面的 CodeSandbox 示例,了解您所需用例的工作示例:

https://codesandbox.io/s/antdprogrammaticcontrolofnestedtablerowselection-zo7oo?file=/index.js:1888-1913

编码愉快!

【讨论】:

  • 非常感谢。!!我使用了您之前提到的相同逻辑。我认为(不确定)该解决方案仅在两个表具有相同列时才有效。在这个问题中,我必须展示嵌套表,顶级表与低级表不同。我通过维护行选择键并实现了相同的逻辑。如果我错了,请纠正我。再次非常感谢您的帮助
猜你喜欢
  • 2019-03-16
  • 1970-01-01
  • 1970-01-01
  • 2020-02-10
  • 2019-10-11
  • 2018-08-30
  • 2020-12-04
  • 1970-01-01
  • 2020-05-06
相关资源
最近更新 更多