在一行中渲染网格项 - ReactJS 和 Material-UI

Zab*_*uki 5 flexbox reactjs css-grid material-ui react-flexbox-grid

我想创建一个材质 ui 轮播,在同一行中有 3 个可见项目。当缩小浏览器的宽度时,我希望这些项目仍位于一行中,并隐藏那些不适合的项目。

这是全屏时:

在此输入图像描述

这就是我想要的:

在此输入图像描述

但这就是我得到的:

在此输入图像描述

你对我做错了什么有什么想法吗?这是我的代码:

  <Paper variant="outlined" className={classes.paper}>
    <Grid
      container
      spacing={2}
      className={classes.grid}
      alignItems="center"
      justify="center"
    >
      ...
      <Box display="flex" alignItems="center" className={classes.box}>
        <Grid item xs="auto" className={classes.arrow}>
          ...Left Arrow...
        </Grid>
        <Grid item>
          <Grid
            container
            spacing={2}
            className={classes.grid}
            alignItems="center"
            justify="center"
          >
            <Grid item xs="auto">
              <UserCard content={users[index]} />
            </Grid>
            <Hidden xsDown>
              <Grid item xs="auto">
                <UserCard content={users[index + 1]} />
              </Grid>
            </Hidden>
            <Hidden smDown>
              <Grid item xs="auto">
                <UserCard content={users[index + 2]} />
              </Grid>
            </Hidden>
          </Grid>
        </Grid>
        <Grid item xs="auto" className={classes.arrow}>
          ...Right Arrow...
        </Grid>
      </Box>
    </Grid>
  </Paper>
Run Code Online (Sandbox Code Playgroud)

风格

const useStyles = makeStyles((theme) => ({
  paper: {
    display: "flex",
    width: "auto",
  },
  grid: {
    width: "auto",
  },
  arrow: {
    padding: theme.spacing(3),
  },
  box: {
    padding: theme.spacing(3),
  },
}));
Run Code Online (Sandbox Code Playgroud)

MrJ*_*eja 7

在你的Grid containeraddwrap='nowrap'道具上。哪个覆盖默认的wrap='wrap'.

<Grid
    container
    wrap='nowrap'
    // Your other props
>
Run Code Online (Sandbox Code Playgroud)

说明
默认情况下,如果项目无法放入容器中,它们只会换行并移动到下一行。

使用wrap='nowrap'prop,网格项目保持在同一行。