在一行中呈现网格项 - ReactJS 和 Material-UI
Render grid items in one row - ReactJS and Material-UI
我想创建一个 material 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>
样式
const useStyles = makeStyles((theme) => ({
paper: {
display: "flex",
width: "auto",
},
grid: {
width: "auto",
},
arrow: {
padding: theme.spacing(3),
},
box: {
padding: theme.spacing(3),
},
}));
在您的 Grid container
上添加 wrap='nowrap'
道具。其中覆盖默认 wrap='wrap'
.
<Grid
container
wrap='nowrap'
// Your other props
>
说明
默认情况下,如果项目不在容器中,它们只是换行并移动到下一行。
使用 wrap='nowrap'
属性,网格项目保持不变。
您可以使用 Material UI 提供的 useMediaQuery 来检查是否需要渲染最后一个组件
我想创建一个 material 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>
样式
const useStyles = makeStyles((theme) => ({
paper: {
display: "flex",
width: "auto",
},
grid: {
width: "auto",
},
arrow: {
padding: theme.spacing(3),
},
box: {
padding: theme.spacing(3),
},
}));
在您的 Grid container
上添加 wrap='nowrap'
道具。其中覆盖默认 wrap='wrap'
.
<Grid
container
wrap='nowrap'
// Your other props
>
说明
默认情况下,如果项目不在容器中,它们只是换行并移动到下一行。
使用 wrap='nowrap'
属性,网格项目保持不变。
您可以使用 Material UI 提供的 useMediaQuery 来检查是否需要渲染最后一个组件