【问题标题】:React and ExpandedRow Render in Ant-designAnt 设计中的 React 和 ExpandedRow 渲染
【发布时间】:2021-04-28 07:22:27
【问题描述】:

我正在使用 Ant Design 表,其中我正在使用行扩展功能。我的查询是当我单击该行正在打开的表格的任何行时,但问题是当我单击其他行时,前一行仍然打开,我只想要这样的功能,如果我单击任何行,另一个已经打开的行应该关闭.....如果有人有解决方案,请在stackBlitz中给我演示......提前谢谢

【问题讨论】:

    标签: reactjs antd


    【解决方案1】:

    查看 antd 文档AntD/#expandable

    很简单。 AntD 表的参数expandable 接受许多变量,例如保存行的女巫的expandedRowKeys 已展开,onExpand 是在单击图标以展开它时调用的方法。一种简单的方法是创建自己的变量来保存像这样扩展的键

    const [expandedKey, setExpandedKey] = useState(null);
    

    并创建一个新方法,用于当行被展开时

    const onExpand = (_, { key }) => setExpandedKey(key);
    

    然后在渲染 AntD 表时传递这些变量

    <Table
      columns={columns}
      expandable={{
        expandedRowRender: (record) => (
          <p style={{ margin: 0 }}>{record.description}</p>
        ),
        onExpand: onExpand,
        expandedRowKeys: [expandedKey]
      }}
      dataSource={data}
    />
    

    现场示例:https://codesandbox.io/s/eloquent-http-jxf1m?file=/src/App.js


    编辑

    要在单击_ 图标(打开时)时使其关闭,请将onExpand 方法更改为:

    const onExpand = (_, { key }) =>
        expandedKey === key ? setExpandedKey(null) : setExpandedKey(key);
    

    【讨论】:

    • 如果我们想点击'_'图标,该行应该是折叠的......你能给出任何解决方案
    • @MujtabaHussainBhat 我更新了相同的演示链接以包含它,因此每当您单击_ 图标时,它就会关闭。基本上它只是对onExpand 方法的更改,包括检查其是否扩展。如果是 - 将状态设置为null。如果未设置状态为key
    • 再次感谢您的帮助.. 感谢您的帮助
    猜你喜欢
    • 2022-10-08
    • 2020-12-20
    • 2020-01-31
    • 2021-04-15
    • 1970-01-01
    • 2020-02-16
    • 2012-12-10
    • 1970-01-01
    • 2021-07-01
    相关资源
    最近更新 更多