Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Distinguish row clicks in Antd (ant design) table React component

Tags:

reactjs

antd

I'm using Ant Design table component: https://ant.design/components/table/#Table

In each row, I'm rendering a title and some link. For example:

Product 1
https://example.com/link/product/1

I'm using the onRow API to open a modal to edit the info for the row, which is working fine. However, the onRow event is also trigged if I click on the link. Is there a way to not trigger the onRow event if I just click on the link in the row, and still keep everything as normal if I click on anywhere on the row cell?

Note: my current work around is using an isEditing state flag, but it's not a good experience since I have to get into "edit mode" and set isEditing to true.

like image 740
7ball Avatar asked Jan 22 '26 07:01

7ball


1 Answers

You'd better show your code usage of onRow and columns, If you use onRow.onClick like below:

<Table
  onRow={(record, rowIndex) => {
    return {
      onClick: event => {}, // click row
    };
  }}
/>

You can custom render of link with Event.stopPropagation() like this:

const columns = [
  {
    dataIndex: "link",
    title: "Link",
    render: (value) => {
      return (
        <a
          onClick={(event) => event.stopPropagation()}
          href={value}
          target="_blank"
        >
          Link
        </a>
      );
    }
  }
]
like image 66
Yuns Avatar answered Jan 25 '26 07:01

Yuns



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!