I am trying to implement an edit row functionality in a react grid. I have attached 2 links. Link 1 is the GIF which shows the functionality that I have implemented using the below code.(For privacy reasons I cannot publish the actual code)
Link 2 is the functionality I am trying to achieve! How shall I do that?
return ( <> <p>Sample Row Field</p> {editId === Id && editRow === true ? ( <select options={options} handleChange={handleChange} /> ) : ( existingRowValue )} </> );
Link 1 – The Functionality I have (Individual Row)
https://i.stack.imgur.com/JJEL5.gif
Link 2 – The Functionality I want (Multiple Rows)
https://i.stack.imgur.com/w7ppb.gif
Advertisement
Answer
I’d assume editId
is a local state variable, same for editRow
So what you’d need to do is change editId
into a state called editIds
as an array (because you want to edit multiple rows, not just one), and replace editId === Id
with editIds.includes(Id)
- onEditClick: should add the rowId into this state, like
setEditIds(...editIds, rowId)
- onSave/CancelClick: should remove the id from the state, like:
setEditIds(editIds.filter((id) => id !== rowId))