I have this table which is created using data from my back end
<Table style={{ marginBottom: "100px" }} dataSource={students} columns={colums} rowKey="studentId" pagination={false} />
And its columns are made with this function
const colums = [ { title: "", Key: "avatar", render: (text, student) => ( <Avatar size="large" style={{ backgroundColor: "orange" }}> {`${student.firstName.charAt(0).toUpperCase()}${student.lastName .charAt(0) .toUpperCase()}`} </Avatar> ), }, { title: "studentId", dataIndex: "studentId", Key: "studentId", }, { title: "firstName", dataIndex: "firstName", Key: "firstName", }, { title: "lastName", dataIndex: "lastName", Key: "lastName", }, { title: "email", dataIndex: "email", Key: "email", }, { title: "Gender", dataIndex: "gender", Key: "gender", }, { title:"", Key:"buttom", render:()=>(<Button onClick={()=>deleteStudent()}>hello</Button>) } ];
I added a button which calls the deleteStudent function and sends it to my Backend
export const deleteStudent= (studentId)=> fetch(`http://localhost:1020/api/students/${studentId}`,{ method:'DELETE', headers:{ 'Content-Type': 'application/json' } }).then(checkStatus);
but I don’t know how to pass the studentId for the specific row
this is my initial state
state = { students: [], isFetching: false, isAddStundetModalVisible: false, };
Advertisement
Answer
Just use second params to get the studentId
like this. This is the same when you render avatar
. You can read more props in docs: https://ant.design/components/table/#Column
(value, record)=>(<Button onClick={()=>deleteStudent(record.studentId)}>hello</Button>