gpt4 book ai didi

javascript - React Material UI GridList 单元格不能正确换行

转载 作者:行者123 更新时间:2023-12-04 15:03:48 25 4
gpt4 key购买 nike

使用 Material-UI GridList 时,单元格不会“正确”包裹在网格中。
在 css 中潜水时,我注意到它使用了 flex-wrap,它假设可以弯曲行,但我确信有一种方法可以使用这个组件,并且可以选择填充所有空格。
代码:

const useStyles = makeStyles((theme) => ({
root: {
display: "flex",
flexWrap: "wrap",
justifyContent: "space-around",
overflow: "hidden",
backgroundColor: theme.palette.background.paper,
paddingTop: theme.spacing(4),
},
gridList: {
width: 500,
height: '100%',
},
listItem: {
borderRadius: theme.borderRadius['secondary'],
overflow: "hidden",
},
}));

function Gallery(props) {
const styles = useStyles();
const cols = [
[2, 2],
[1, 2],
[1, 2],
[2, 1],
[1, 1],
[1, 1],
[1, 1],
];

const renderItem = (tile, index) => (
<GridListTile
classes={{ root: styles.listItem }}
key={tile.image}
cols={cols[index % cols.length][0]}
rows={cols[index % cols.length][1]}
>
<img src={tile.image} alt={tile.title} />
</GridListTile>
);
return (
<div className={styles.root}>
<GridList
cellHeight={160}
className={styles.gridList}
cols={3}
spacing={10}
>
{data.items.map(renderItem)}
</GridList>
</div>
);
}
我很感激帮助
grid example

最佳答案

我引用了 MaterialUI 的文档
您同时指定了行和列。删除 rows={cols[index % cols.length][1]}解决了这个问题。
这是工作示例。 (图片取自sample)

import React from 'react';
import { makeStyles } from '@material-ui/core/styles';
import GridList from '@material-ui/core/GridList';
import GridListTile from '@material-ui/core/GridListTile';

const App = () => {
const useStyles = makeStyles((theme) => ({
root: {
display: 'flex',
flexWrap: 'wrap',
justifyContent: 'space-around',
overflow: 'hidden',
backgroundColor: theme.palette.background.paper,
paddingTop: theme.spacing(4),
},
gridList: {
width: 500,
height: '100%',
},
listItem: {
overflow: 'hidden',
},
}));

const styles = useStyles();
const cols = [
[2, 2],
[1, 2],
[1, 2],
[2, 1],
[1, 1],
[1, 1],
[1, 1],
];

const tileData = [
{
img: '/static/images/grid-list/breakfast.jpg',
title: 'Breakfast',
author: 'jill111',
cols: 2,
featured: true,
},
{
img: '/static/images/grid-list/burgers.jpg',
title: 'Tasty burger',
author: 'director90',
},
{
img: '/static/images/grid-list/camera.jpg',
title: 'Camera',
author: 'Danson67',
},
{
img: '/static/images/grid-list/morning.jpg',
title: 'Morning',
author: 'fancycrave1',
featured: true,
},
{
img: '/static/images/grid-list/hats.jpg',
title: 'Hats',
author: 'Hans',
},
{
img: '/static/images/grid-list/honey.jpg',
title: 'Honey',
author: 'fancycravel',
},
{
img: '/static/images/grid-list/vegetables.jpg',
title: 'Vegetables',
author: 'jill111',
cols: 2,
},
{
img: '/static/images/grid-list/plant.jpg',
title: 'Water plant',
author: 'BkrmadtyaKarki',
},
{
img: '/static/images/grid-list/mushroom.jpg',
title: 'Mushrooms',
author: 'PublicDomainPictures',
},
{
img: '/static/images/grid-list/olive.jpg',
title: 'Olive oil',
author: 'congerdesign',
},
{
img: '/static/images/grid-list/star.jpg',
title: 'Sea star',
cols: 2,
author: '821292',
},
{
img: '/static/images/grid-list/bike.jpg',
title: 'Bike',
author: 'danfador',
},
];

const renderItem = (tile, index) => (
<GridListTile
classes={{ root: styles.listItem }}
key={tile.image}
cols={cols[index % cols.length][0]}
>
<img src={tile.img} alt={tile.title} />
</GridListTile>
);
return (
<div className={styles.root}>
<GridList
cellHeight={160}
className={styles.gridList}
cols={3}
spacing={10}
>
{tileData.map(renderItem)}
</GridList>
</div>
);
};

export default App;

Fixed

关于javascript - React Material UI GridList 单元格不能正确换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66510041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com