请问老师 为什么我每次下拉的时候 都有一个报错呢?

请问老师 为什么我每次下拉的时候 都有一个报错呢?

<template>

  <swiper :options="swiperOption" ref="swiper">

    <div class="mine-scroll-pull-down" v-if="pullDown">

      <me-loading :text="pullDownText" inline ref="pullDownLoading" />

    </div>

    <swiper-slide>

      <slot></slot>

    </swiper-slide>

    <div class="mine-scroll-pull-up" v-if="pullUp">

      <me-loading :text="pullDownText" inline ref="pullUpLoading" />

    </div>

    <div class="swiper-scrollber" v-if="scrollbar" slot="scrollbar"></div>

  </swiper>

</template>


<script>

import { swiper, swiperSlide } from "vue-awesome-swiper";

import MeLoading from "base/loading";

import {

  PULL_DOWN_HEIGHT,

  PULL_DOWN_TEXT_INIT,

  PULL_DOWN_TEXT_START,

  PULL_DOWN_TEXT_ING,

  PULL_DOWN_TEXT_END,

  PULL_UP_HEIGHT,

  PULL_UP_TEXT_INIT,

  PULL_UP_TEXT_START,

  PULL_UP_TEXT_ING,

  PULL_UP_TEXT_END

} from "./config";

export default {

  name: "MeScroll",

  components: {

    swiper,

    swiperSlide,

    MeLoading

  },

  props: {

    scrollbar: {

      type: Boolean,

      default: true

    },

    data: {

      type: [Array, Object]

    },

    pullDown: {

      type: Boolean,

      default: false

    },

    pullUp: {

      type: Boolean,

      default: false

    }

  },

  // data() {

  //   return {

  //     pulling: false,

  //     pullDownText: PULL_DOWN_TEXT_INIT,

  //     pullUpText: PULL_UP_TEXT_INIT,

  //     swiperOption: {

  //       direction: "vertical",

  //       slidesPerView: "auto",

  //       freeMode: true,

  //       setWrapperSize: true,

  //       scrollber: {

  //         el: this.scrollber ? ".swiper-scrollbar" : null,

  //         hide: true

  //       },

  //       on: {

  //         sliderMove: this.scroll,

  //         touchEnd: this.touchEnd

  //       }

  //     }

  //   };

  // },

  watch: {

    data() {

      this.update();

    }

  },

  created() {

    this.init();

  },

  methods: {

    init() {

      this.pulling = false;

      this.pullDownText = PULL_DOWN_TEXT_INIT;

      this.pullUpText = PULL_UP_TEXT_INIT;

      this.swiperOption = {

        direction: "vertical",

        slidesPerView: "auto",

        freeMode: true,

        setWrapperSize: true,

        scrollber: {

          el: this.scrollber ? ".swiper-scrollbar" : null,

          hide: true

        },

        on: {

          sliderMove: this.scroll,

          touchEnd: this.touchEnd,

          transitionEnd: this.scrollEnd

        }

      };

    },

    scrollToTop(speed, runCallbacks) {

      this.$refs.swiper &&

        this.$refs.swiper.swiper.slideTo(0, speed, runCallbacks);

    },

    update() {

      this.$refs.swiper && this.$refs.swiper.swiper.update();

    },


    scroll() {

      const swiper = this.$refs.swiper.swiper;


      this.$emit("scroll", swiper.translate, this.$refs.swiper.swiper);

      if (this.pulling) {

        return;

      }

      if (swiper.translate > 0) {

        //下拉

        if (!this.pullDown) {

          return;

        }

        if (swiper.translate > PULL_DOWN_HEIGHT) {

          this.$refs.pullDownLoading.setText(PULL_DOWN_TEXT_START);

        } else {

          this.$refs.pullDownLoading.setText(PULL_DOWN_TEXT_INIT);

        }

      } else if (swiper.isEnd) {

        if (!this.pullUp) {

          return;

        }

        const isPullUp =

          Math.abs(swiper.translate) + swiper.height - PULL_UP_HEIGHT >

          parseInt(swiper.$wrapperEl.css("height"));


        if (isPullUp) {

          this.$refs.pullUpLoading.setText(PULL_UP_TEXT_START);

        } else {

          this.$refs.pullUpLoading.setText(PULL_UP_TEXT_INIT);

        }

      }

    },

    scrollEnd() {

      this.$emit(

        "scroll-end",

        this.$refs.swiper.swiper.translate,

        this.$refs.swiper.swiper

      );

    },

    touchEnd() {

      if (this.pulling) {

        return;

      }


      const swiper = this.$refs.swiper.swiper;


      if (swiper.translate > PULL_DOWN_HEIGHT) {

        //下拉

        if (!this.pullDown) {

          return;

        }

        this.pulling = true;

        swiper.allowTouchMove = false; //禁止触摸

        swiper.setTransition(swiper.params.speed); //

        swiper.setTranslate(PULL_DOWN_HEIGHT); //

        swiper.params.virtualTranslate = true; //订住不回弹

        this.$refs.pullDownLoading.setText(PULL_DOWN_TEXT_ING); //

        this.$emit("pull-down", this.pullDownEnd);

      } else if (swiper.isEnd) {

        //底部

        const totalHeight = parseInt(swiper.$wrapperEl.css("height"));

        const isPullUp =

          Math.abs(swiper.translate) + swiper.height - PULL_UP_HEIGHT >

          totalHeight;

        if (isPullUp) {

          if (!this.pullUp) {

            return;

          }

          this.pulling = true;

          swiper.allowTouchMove = false; // 禁止触摸

          swiper.setTransition(swiper.params.speed);

          swiper.setTranslate(-(totalHeight + PULL_UP_HEIGHT - swiper.height));

          swiper.params.virtualTranslate = true; // 定住不给回弹

          this.$refs.pullUpLoading.setText(PULL_UP_TEXT_ING);

          this.$emit("pull-up", this.pullUpEnd);

        }

      }

    },

    pullDownEnd() {

      const swiper = this.$refs.swiper.swiper;

      this.pulling = false;

      this.$refs.pullDownLoading.setText(PULL_DOWN_TEXT_END);

      swiper.params.virtualTranslate = false; //

      swiper.allowTouchMove = true; //

      swiper.setTransition(swiper.params.speed);

      swiper.setTranslate(0);

      setTimeout(() => {

        this.$emit("pull-down-transition-end");

      }, swiper.params.speed);

    },

    pullUpEnd() {

      const swiper = this.$refs.swiper.swiper;

      this.pulling = false;

      this.$refs.pullUpLoading.setText(PULL_DOWN_TEXT_END);

      swiper.params.virtualTranslate = false; //

      swiper.allowTouchMove = true; //

    }

  }

};

</script>

<style lang='scss' scoped>

.swiper-container {

  overflow: hidden;

  width: 100%;

  height: 100%;

}


.swiper-slide {

  height: auto;

}

.mine-scroll-pull-up,

.mine-scroll-pull-down {

  position: absolute;

  left: 0;

  width: 100%;

}

.mine-scroll-pull-down {

  bottom: 100%;

  height: 80px;

}


.mine-scroll-pull-up {

  top: 100%;

  height: 30px;

}

</style>

http://img1.sycdn.imooc.com//climg/5e009a9a09c7f93f07770354.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕夭夭 2019-12-23 18:56:01

同学你好,上传的代码不对,老师这边测试没有报错。请看一下报错信息,与newData相关的文件是如下几个:

http://img1.sycdn.imooc.com//climg/5e009d100933268305750164.jpg

建议根据提示的文件去找一找有没有使用newData,提升自己独立解决问题的能力。如果实在没有解决,也可以把这几个文件粘贴到问答区,以便老师为你测试查找问题。

祝学习愉快!

  • 提问者 慕前端2064318 #1
    找到原因了 自己写错了 谢谢老师
    2019-12-24 11:09:56
提问者 慕前端2064318 2019-12-23 18:46:06

不明白哪里有问题,我找了一下 一直提示newDATA 没有定义,我不了解,这个newData在哪里

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
热门框架Vue开发WebApp 18版
  • 参与学习           人
  • 提交作业       209    份
  • 解答问题       3299    个

本路径是通过ES6基础知识、运用Zepto、Swiper、fullPag等移动端常用工具包、以及当下流行框架Vue,结合多个实战案例,还原真实开发场景,最终实现手机端购物商城网页开发。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师