好客租房118-轮播图bug修复

 第一个 数据加载完成加载一个true

import React from "react";
import axios from "axios"
//留白
import { Carousel,Flex } from 'antd-mobile';
import Nav1 from '../../assets/images/nav-1.png'
import Nav2 from '../../assets/images/nav-2.png'
import Nav3 from '../../assets/images/nav-3.png'
import Nav4 from '../../assets/images/nav-4.png'

//导入样式
import "./index.css"


const navs=[{
    id:1,
    img:Nav1,
    title:"整租",
    path:"/home/list"
},{
    id:2,
    img:Nav2,
    title:"合租",
    path:"/home/list"
},{
    id:3,
    img:Nav3,
    title:"地图找房",
    path:"/home/list"
},{
    id:4,
    img:Nav4,
    title:"去出租",
    path:"/home/list"
}]
// 轮播图不会自动播放  数据返回过来的时候高度不够 数据加载前后数据的问题
class Index extends React.Component{
    state = {
        data: ['1', '2', '3'],
        imgHeight: 212,
        isSwiperLoding:false
      }
      componentDidMount() {
        // simulate img loading
        // this.getSwipers()
        setTimeout(() => {
            this.setState({
                data: ['AiyWuByWklrrUDlFignR', 'TekJlZRVCjLFexlOCuWn', 'IJOtIlfsYdTyaDTRVrLI'],
                isSwiperLoding:true
            });
          }, 100);
      }
      async getSwipers(){
          const res=await axios.get("http://localhost:8080/home/swiper")
          console.log("轮播如数据为:",res)
        //   this.setState({
        //       swiper:res.data.body
        //   })
      }
      //渲染轮播图的方法
      renderSwipers(){
        return   this.state.data.map(val => (
            <a
              key={val}
              href="http://www.alipay.com"
              style={{ display: 'inline-block', width: '100%', height: this.state.imgHeight }}
            >
              <img
                src={`https://zos.alipayobjects.com/rmsportal/${val}.png`}
                alt=""
                style={{ width: '100%', verticalAlign: 'top' }}
                onLoad={() => {
                  // fire window resize event to change height
                  window.dispatchEvent(new Event('resize'));
                  this.setState({ imgHeight: 'auto' });
                }}
              />
            </a>
          ))
      }
      //渲染导航菜单
      renderNavs(){
          return navs.map(item=>(
            <Flex.Item key={item.id} onClick={()=>{this.props.history.push(item.path)}}>
            <img src={item.img} alt=""/>
            <h2>{item.title}</h2>
            </Flex.Item>
          ))
      }
      render() {
        return (
            //留白 WingBlank
          <div className="index">
              <div className="swiper">
              {this.state.isSwiperLoding===true?(
                   <Carousel
                   //自动播放
                     autoplay={true}
                     infinite
                   //   beforeChange={(from, to) => console.log(`slide from ${from} to ${to}`)}
                   //   afterChange={index => console.log('slide to', index)}
                   >
                    {this.renderSwipers()}
                   </Carousel>
                  
              ):""}
              </div>
           
               <Flex className="nav">
                    {this.renderNavs()}
                   </Flex>
           
       
          </div>
        );
      }
}

export default Index

posted @ 2022-05-27 21:06  前端导师歌谣  阅读(29)  评论(0编辑  收藏  举报