vue-awesome-swiper 为什么使用axios动态获取照片,不能滑动,出现错误?

发布于 2022-09-06 06:25:34 字数 1946 浏览 10 评论 0

swiper里的每张照片都加载完毕了,但是就是不能滑动,也看不到其他的照片,只有第一张

出现如下错误
clipboard.png

代码如下

    <div class="my-swiper">
        <swiper :options="swiperOption"  ref="mySwiper">
            <swiper-slide v-for="item of items">
              <img :src="item.url" :alt="item.name">
              <div class="swiper-button-prev"></div>
              <div class="swiper-button-next"></div>
            </swiper-slide>
            <div class="swiper-pagination" slot="pagination"></div>
        </swiper>
    </div>
        items: '',
        swiperOption: {
                notNextTick: true,
                pagination: '.swiper-pagination',
                slidesPerView: 'auto',
                centeredSlides: true,
                effect : 'coverflow',
                prevButton:'.swiper-button-prev',
                nextButton:'.swiper-button-next',
                autoplayDisableOnInteraction: false,
                autoplay: 2000,
                loop: true,
                paginationClickable: true,
                spaceBetween: 30,
                  onSlideChangeEnd: swiper => {
                    this.page = swiper.realIndex+1;
                    this.index = swiper.realIndex;
                  }
                },

axios取数据

 getData () {
        this.$http({
          url: 'http://192.168.1.108:3000/index/slider',
          method: 'get'
        }).then((res) => {
          this.items = res.data.slider
        }).catch((res) => {
          console.log('error:',res)
        })
      },
mounted() {
      this.getData();
    }

问题好像解决了
swiper里的这个属性出了问题,注释掉就好了,但是不知道为什么?
// slidesPerView: 'auto',

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

一念一轮回 2022-09-13 06:25:34

你看下哪里用到了classList,你的数据都没有classList,当然报错,你在用到这个属性的时候加上判断

套路撩心 2022-09-13 06:25:34

你循环slide的时候应该是从一个对象的属性里面拿的,比如
data.xxx.classList
在你取数据的生活,data应该是一个空对象,并没有属性'xxx',swiper循环的时候xxx是undefined,所以从undefined中取classList会报错

你需要在data里面直接定义一个classList

data(){
    return {
        classList:[]
    }
}

之后将异步取回的关于swiper的字段单独赋值给classList

之后从classList中循环即可

不如归去 2022-09-13 06:25:34

楼主最后是怎么解决的?我现在是异步获取的值给轮播图子组件传值,并不是在当前组件异步获取的值,在哪个钩子里给classList赋值呀?

你的心境我的脸 2022-09-13 06:25:34

楼主,你这个问题是怎么解决的,我注释了 slidesPerView: 'auto', 这个之后是可以轮播了,但是底层又报错了,而且不能自动轮播,设置了自动轮播也没用

三生池水覆流年 2022-09-13 06:25:34

注释以后好了,,感谢楼主分享,,,,,么么哒

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文