Search code examples
javascriptreactjsmaterial-uidatagrid

MUI datagrid get selected row's cell content


After selecting a row from the datagrid, I am trying to access each of the cell values of that row. However, I always get "undefined" when doing selectedRowData.email. What is the correct way of accessing a selected row's cell data?

<DataGrid
            checkboxSelection
            rows={adminData}
            columns={columns}
            getRowId={(row) => row._id}
            slots={{ toolbar: CustomToolbar }}
            onRowSelectionModelChange={(id) => {
              const selectedIDs = new Set(id);
              const selectedRowData = adminData.filter((row) =>
                selectedIDs.has(row._id)
              );

              console.log(selectedRowData); //prints object
              console.log(selectedRowData.email); //undefined }} />

enter image description here

enter image description here


Solution

  • selectedRowData is an array. You need to loop through it.

    Replace this part of your code

            onRowSelectionModelChange={(id) => {
              const selectedIDs = new Set(id);
              const selectedRowData = adminData.filter((row) =>
                selectedIDs.has(row._id)
              );
    
              console.log(selectedRowData); //prints object
              console.log(selectedRowData.email); //undefined }} /
    

    with

            onRowSelectionModelChange={(id) => {
                const selectedIDs = new Set(id);
                const selectedRowData = adminData.filter((row) =>
                    selectedIDs.has(row._id)
                );
                selectedRowData.forEach((eachItem)=> {
                    console.log(eachItem.email);
                });
              console.log(selectedRowData); //prints object