Сетка данных MUI отображает данные воздушной таблицы

#reactjs #datagrid #material-ui #airtable

Вопрос:

Я использую Airtable в качестве временной базы данных для основных данных и использую сетку данных Material-UI для ее отображения. Я могу извлечь данные из таблицы данных и отобразить их в console.log, но не могу отправить их в сетку данных для отображения.

Это сетка данных MUI — https://mui.com/components/data-grid/#mit-version
Это пакет Airtable npm https://www.npmjs.com/package/airtable

Это консоль.журнал, отображающий полученные данные.

Именно здесь на сайте обнаружена ошибка, она отображает только заголовок столбца, а не данные.

 import React, { useEffect, useState } from "react";
import { makeStyles } from "@material-ui/styles";
import { Container, Grid } from "@material-ui/core";
import { DataGrid } from "@mui/x-data-grid";
import Airtable from "airtable";
const base = new Airtable({ apiKey: "*****" }).base(
  "*****"
);

const useStyles = makeStyles(
  (theme) => ({
    container: {
      marginTop: "10vh",
    },
  }),
  {}
);
const col = [
  { field: "id", headerName: "ID", width: 90 },
  { field: "name", headerName: "Institution Name", width: 150 },
  { field: "town", headerName: "Location Town", width: 150 },
  { field: "state", headerName: "State", width: 150 },
];
export default function CE3() {
  const classes = useStyles();
  const [rows, setRows] = useState([]);

  useEffect(() => {
    base("Table 1")
      .select({
        maxRecords: 3,
        view: "Grid view",
      })
      .eachPage((records, fetchNextPage) => {
        setRows(records);
        console.log(records);
        fetchNextPage();
      });
  }, []);

  return (
    <div>
      <Container fixed={true} className={classes.container}>
        Select at least <strong>1</strong> college
        <br></br>
        {rows amp;amp; (
          <DataGrid
            rows={rows}
            columns={col}
            pageSize={5}
            rowsPerPageOptions={[5]}
            checkboxSelection
            disableSelectionOnClick
          />
        )}
      </Container>
    </div>
  );
}

 

Ответ №1:

Вы должны задать высоту родительской сетки данных, чтобы сетка данных соответствовала этой высоте (см. https://mui.com/components/data-grid/layout/#predefined-dimensions)

Или установите autoHeight для prop значение true (см. https://mui.com/components/data-grid/layout/#auto-height)