1.在使用antd的Carousel组件时,轮播图刚开始不会进行自动轮播,并且在从其他页面跳转到当前页面时,轮播图展示不完全的问题
原因:轮播图数据是动态加载的,加载完成前后轮播图数量不一致
解决方案:1.在state中添加表示轮播图加载完成的数据
2.在轮播图加载完成时,修改该数据状态值为true
3.只有轮播图数据加载完成的情况下,才渲染轮播图组件
4.闪动问题,是将轮播图放在一个div盒子里面进行展示,给这个盒子一个默认的类名,让其默认高度问盒子的高度,这样轮播图下面的数据就不会出现闪动的问题了
话不多说,直接上代码
export default class Index extends React.Component {
state = {
// 轮播图数据
swipers: [],
// 轮播图是否加载完成
isSwiperLoad: false,
}
// 请求轮播图方法
async getSwiperData() {
const res = await axios.get("/home/swiper")
// console.log(res)
this.setState({
swipers: res.body,
isSwiperLoad: true
})
}
// 页面dom元素加载完成调用
componentDidMount() {
this.getSwiperData()
}
render() {
return (
<div className="index"