javascript - 如何使 Material-UI Table 保持动态高度的可滚动性?

标签 javascript css reactjs material-ui css-grid

我对 Material-UI Table 组件及其大小和可滚动性有疑问。

简短:

如果 Material-UI 表格组件的父级具有固定大小,则它只能滚动。如果我将大小设置为 100% 适合父级,它就会溢出。

长:

我在 Reactjs 中有一个简单的 Web 应用程序,它由一个页眉、一个主体(表格所在的位置)和一个页脚组成。我的 App 组件的样式是按如下方式分发这三个基本布局组件:

const useStyles = makeStyles((theme) => ({
  root: {
    height: "100vh",
    maxHeight: "100vh",
    display: "grid",
    gridTemplateRows: "auto 1fr auto",
  },
}));

这很好用。我的主体组件占用了所有可用空间来填充整个视口(viewport)。该组件如下所示:

<div className={classes.root}>
   <Controls /> //just some buttons, arranged in one line
   <Table /> //my table component, which uses pagination
</div>

表格本身使用分页和装载,默认每页 10 行。

它的 CSS 看起来像这样:

root: {
    maxHeight: "100%",
    display: "grid",
    gridTemplateRows: "min-content 1fr",
    gap: "25px",
  },

表格组件本身看起来像这样:

<div className={classes.root}>
      {loading ? loadingAlert : <></>}
      <Paper elevation={3} className={classes.tableRoot}>
        <TableContainer className={classes.container}>
          <Table size="small" stickyHeader aria-label="sticky table">
 [...]

我的表格组件的 CSS 如下所示:

const useStyles = makeStyles({
  root: {
    maxHeight: "100%",
  },
  tableRoot: {
    width: "100%",
    maxHeight: "100%",
  },
  container: {
    maxHeight: "100%", <---
  },
  footer: {
    display: "grid",
    gridTemplateColumns: "1fr min-content",
  },
});

当用户将每页显示的行数从 10 更改为 25 时,表格的高度会发生变化。在那种情况下,我希望表格占用 body 中的所有可用空间并变得可滚动。如果我将 container 的 maxHeight 设置为固定像素值,表格将变为可滚动且不会溢出。如果我这样离开,表格就会溢出,用户必须滚动才能到达页面末尾。

谁能告诉我如何设置容器的高度以 100% 适合其父容器而不让我的表格溢出?

最佳答案

如果你使用 Material UI 的 DataGrid,你可以使用一个名为 autoHeight 的 Prop

<DataGrid autoHeight {...data} />
<p>more content</p>

您可以在这个 docs 中查看更多详细信息

关于javascript - 如何使 Material-UI Table 保持动态高度的可滚动性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65325075/

相关文章:

javascript - 我创建了一个简单的测试作品集网站,但图像在调整大小时移动

Javascript:以两位数返回分钟数?

html - 如何在桌面上的 django 网页上显示图像?

jquery - 水平 div 上的自动页面高度

javascript - 使用最少 JS 的 contenteditable div 占位符

reactjs - HTML Canvas,带有 React 钩子(Hook)和 Typescript

javascript - 安装后尝试设置时出现 react 导航错误 - 元素类型无效

javascript - event 是一个全局变量,可以在回调链中的任何地方访问吗?

javascript - Angularjs 假后端 REST API

javascript - React 是否在连续调用 ReactDOM.render 时应用其协调算法?