我正在try 让包含可滚动列表的网格项缩小,这样Back按钮就在列表下方.

以下是代码和指向CodeSandbox的链接.列表周围有很多网格和方框组件.这些都是来自其他父组件的摘录,为了简单起见,我将它们都放在一个文件中.

https://codesandbox.io/s/y2c9sn?file=/src/App.js

import * as React from "react";
import {
  Box,
  Button,
  Grid,
  List,
  ListItem,
  ListItemText,
  ListItemButton,
  AppBar,
  Toolbar,
  Typography,
} from "@mui/material";

const usersList = [
  "user1",
  "user2",
  "user3",
  "user4",
  "user5",
  "user6",
  "user7",
  "user8",
  "user9",
  "user10",
];

function App() {
  return (
    <Box
      sx={{
        display: "flex",
        justifyContent: "center",
        height: "100vh",
      }}
    >
      <Grid container justifyContent="center">
        <Grid item xs={12} md={8}>
          <AppBar position="static">
            <Toolbar>
              <Typography variant="h6">Scrollable List</Typography>
            </Toolbar>
          </AppBar>
        </Grid>

        <Grid item xs={12} md={8}>
          <Box>
            <Grid container justifyContent="center">
              <Grid item xs={12}>
                <List sx={{ maxHeight: "50%", overflow: "auto" }}>
                  {usersList.map((user, index) => {
                    return (
                      <ListItem disablePadding key={index}>
                        <ListItemButton>
                          <ListItemText>{user}</ListItemText>
                        </ListItemButton>
                      </ListItem>
                    );
                  })}
                </List>
              </Grid>
            </Grid>
            <Grid container justifyContent="center">
              <Grid item xs={8}>
                <Button
                  name="back"
                  variant="contained"
                  color="primary"
                  value="back"
                  fullWidth
                  size="small"
                >
                  Back
                </Button>
              </Grid>
            </Grid>
          </Box>
        </Grid>
      </Grid>
    </Box>
  );
}

export default App;

链接到CodeSandbox https://y2c9sn.csb.app/

推荐答案

您可以移动此样式:

sx={{ maxHeight: "50%", overflow: "auto" }}

从您的List组件到其第一个父Grid container.

This sandbox是具有此更改的沙箱的更新版本.

Reactjs相关问答推荐

在一个blog函数中调用setState钩子

在继承值更改时重置react 挂钩窗体字段值

试图从Amazon-Cogito-Identity-js模拟CogitoUser.authateUser,并将其获取为未定义的S

在 Next13 中将 props 传递给 onClick 从服务器到客户端组件

React Native - 如何处理错误带有有效负载的NAVIGATE操作..未被任何导航器处理?

在react 中单击父级中的按钮时如何将数据从子级发送到父级?

损坏的图像 React useState

使用 react-markdown 组件时 Tailwind CSS 的问题

AWS 全栈应用程序部署教程构建失败

作为单个变量的 React 组件是否比 memoized 组件渲染得更快?

从其他组件切换 FieldSet

React JS:如何判断用户使用的是浏览器 url 还是桌面 electron

更新和删除功能不工作 Asp.net MVC React

添加 React/Redux 组件模板的 VS Code 扩展

如何使图标适合 react-bootstrap 中的行元素

如何使用react 路由将 url 参数限制为一组特定的值?

react-admin useGetIdentity 只返回全名,id 未定义 头像未定义

如何使用 useEffect 和 if 语句 React

如果两个组件在 React 中导入相同的 CSS 文件会发生什么?

Rtk 查询无效标签不使数据无效