reactjs - Material UI Carousel 自动播放和加载图像问题
问题描述
嗨,我发现这个https://github.com/Learus/react-material-ui-carousel在我的网站上使用它。但是我遇到了两个问题:
为了设置
autoPlay
状态,我必须将其更改为导致无法使用的类,const classes = useStyles()
所以有人知道我该怎么办吗?我在同一目录下的 img 文件夹中保存了 3 张 jpg 照片,但我不知道为什么这些照片无法加载到我的本地主机中。
这是我的代码:
import React from 'react';
import { createMuiTheme } from '@material-ui/core';
import { ThemeProvider } from '@material-ui/core';
import { makeStyles } from '@material-ui/core/styles';
import AppBar from '@material-ui/core/AppBar';
import Toolbar from '@material-ui/core/Toolbar';
import Typography from '@material-ui/core/Typography';
import Button from '@material-ui/core/Button';
import Tooltip from '@material-ui/core/Tooltip';
import Carousel from 'react-material-ui-carousel';
import CarouselSlide from 'react-material-ui-carousel';
import Card from '@material-ui/core/Card';
import CardMedia from '@material-ui/core/CardMedia';
import CardContent from '@material-ui/core/CardContent';
const theme = createMuiTheme ({
palette: {
primary:{
main:'#3c52b2'
}
}
})
const useStyles = makeStyles((theme) => ({
root: {
flexGrow: 1,
},
Button: {
"&:hover": {
backgroundColor: "#fff !important"
}
},
title: {
flexGrow: 1,
},
}));
export default function UMainPage (){
const pictures = [
{image:'./2.jpg', title:'Iu 1'},
{image:'./3.jpg', title:'Iu 2'},
{image:'./4.jpg', title:'Iu 3'}
];
const classes = useStyles();
return (
<ThemeProvider theme={theme}>
<AppBar position="static">
<Toolbar>
<Typography variant="h6" className={classes.title}>
清动订馆平台
</Typography>
<Button color="inherit">首页</Button>
<Button color="inherit">历史订单</Button>
<Tooltip disableFocusListener disableTouchListener title="登录账号">
<Button color="inherit">未登录</Button>
</Tooltip>
</Toolbar>
</AppBar>
<Carousel>
{pictures.map(({image, title}) => (
<CarouselSlide key={image}>
<Card>
<CardMedia
image={image}
title={title}
style={{
height: 0,
paddingTop: '25%',
}}
/>
<CardContent>
<Typography>{title}</Typography>
</CardContent>
</Card>
</CarouselSlide>
))}
</Carousel>
</ThemeProvider>
);
}
解决方案
- 为了设置
autoPlay
你应该把它传递给Carousel
这样的:
<Carousel autoPlay>
...
</Carousel>
如果你想有能力改变它,你应该保持状态:
const [autoPlay, setAutoPlay] = useState(true);
- 您应该先导入图像,然后将它们保存在
pictures
数组中:
import image2 from "./2.jpg";
import image3 from "./3.jpg";
import image4 from "./4.jpg";
...
const pictures = [
{ image: image2, title: "Iu 1" },
{ image: image3, title: "Iu 2" },
{ image: image4, title: "Iu 3" },
];
推荐阅读
- python - 致命的 Python 错误:init_fs_encoding:尝试在 venv 上安装包时,无法获取文件系统编码的 Python 编解码器
- reactjs - 同构样式加载器无法正常工作
- c# - 检测C#方法是否使用yield return
- javascript - 如何在没有 JS 的情况下制作粘性导航栏?
- c# - 无法从 Nuget 包访问命名空间
- python - 管理部分的时间不匹配
- java - 如何模拟调用 Rest API 的服务类并将 ResponseEntity 作为响应
- python - 输入数据集和输出数据集的 TensorFlow image_dataset_from_directory
- r - ggplot 正在将我的所有数据绘制成一行
- mysql - 从 n:m 关系中仅选择具有 n 个关系的实体