DataGrid blank/not displaying data? Material UI

Viewed 3299

For some reason my DataGrid table is not displaying anything.

Example of my data and DataGrid not displaying anything in new project with source code from below

I had this issue happen in my previous project and I thought it was something I did when trying to learn everything so I made another project, setup reactjs and material ui and tried again and had the same issue.

I made a bug report on GitHub but I am really looking for a quick solution. Does anyone have any ideas? Everything in my project has been updated to the latest version (including django and mui libraries)

import React, { useEffect, useState } from "react"
import jQuery from 'jquery'
import { Container } from '@mui/material';
import { DataGrid, GridRowsProp, GridColDef } from '@mui/x-data-grid'


function WatcherOverview() {
    
      const columns = [
        { field: 'id', headerName: 'ID', width: 90 },
        {
          field: 'firstName',
          headerName: 'First name',
          width: 150,
          editable: true,
        },
        {
          field: 'lastName',
          headerName: 'Last name',
          width: 150,
          editable: true,
        },
        {
          field: 'age',
          headerName: 'Age',
          type: 'number',
          width: 110,
          editable: true,
        },
        {
          field: 'fullName',
          headerName: 'Full name',
          description: 'This column has a value getter and is not sortable.',
          sortable: false,
          width: 160,
          valueGetter: (params) =>
            `${params.row.firstName || ''} ${params.row.lastName || ''}`,
        },
      ];
      
      const rows = [
        { id: 1, lastName: 'Snow', firstName: 'Jon', age: 35 },
        { id: 2, lastName: 'Lannister', firstName: 'Cersei', age: 42 },
        { id: 3, lastName: 'Lannister', firstName: 'Jaime', age: 45 },
        { id: 4, lastName: 'Stark', firstName: 'Arya', age: 16 },
        { id: 5, lastName: 'Targaryen', firstName: 'Daenerys', age: null },
        { id: 6, lastName: 'Melisandre', firstName: null, age: 150 },
        { id: 7, lastName: 'Clifford', firstName: 'Ferrara', age: 44 },
        { id: 8, lastName: 'Frances', firstName: 'Rossini', age: 36 },
        { id: 9, lastName: 'Roxie', firstName: 'Harvey', age: 65 },
      ];

      return (
        <Container>
          <h1>Single items:</h1>
          <DataGrid
        rows={rows}
        columns={columns}
        pageSize={5}
        rowsPerPageOptions={[5]}
        checkboxSelection
        disableSelectionOnClick
      />
        </Container>
      );
    }

export default WatcherOverview
1 Answers

You are missing the autoHeight props in DataGrid. if you want more granule control over height. then check headerHeight and rowHeight on https://mui.com/api/data-grid/data-grid/

<DataGrid
  ...
  autoHeight
/>

also if you don't want to use autoHeight in DataGrid then you need to specify height in container. https://mui.com/components/data-grid/layout/

<Container sx={{height: 350}}>
  ...
   <DataGrid
      ...
   />
</Container>

also you can use headerHeight and rowHeight for more granule control.

<Container sx={{height: 350}}>
  ...
  <DataGrid
    ...
    headerHeight={75}
    rowHeight={65}
  />
</Container>
Related