景点列表图片作业问题

景点列表图片作业问题

你好,我问一个很白痴的问题,我写的后端代码和要求一致,非常简单,如图:

http://img1.sycdn.imooc.com//climg/6046dddc09753df407770972.jpg

http://img1.sycdn.imooc.com//climg/6046dddd09b864f908960789.jpg

但是前端运行时,就会出现page=NaN的错误,看了好几遍的前端代码,没有找到问题,请问这个问题出在哪?谢谢

http://img1.sycdn.imooc.com//climg/6046debc094a83fa09640269.jpg

http://img1.sycdn.imooc.com//climg/6046debd0994f8a608190156.jpg

http://img1.sycdn.imooc.com//climg/6046ded009eb4aaa04400781.jpg


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

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

3回答
Lester 提问者 2021-03-09 16:39:18

你好,我的问题解决了,我改了前端代码,改成前端页码+1,再判断前端与后端的页码与页数,课程提供的前端代码可能有问题,我修改后的前端代码,请见下图,thanks


http://img1.sycdn.imooc.com//climg/604733f109f7fb6e09760325.jpg

http://img1.sycdn.imooc.com//climg/604733f3098e462306800236.jpg




Lester 提问者 2021-03-09 16:28:46

你好,我的问题解决了,我改了前端代码,改成前端页码+1,再判断前端与后端的页码与页数,课程提供的前端代码有问题,请见下图:


http://img1.sycdn.imooc.com//climg/604730da096141a306540237.jpg



时间, 2021-03-09 14:15:06

同学,你好!影点图片没有更多了,page值没有获取到,因此报错了。同学没有提供相应的代码,无法确定具体问题。同学可以参考下述前端代码进行修改:

1
<template><br>  <!-- 景点图片 --><br>  <div class="page-sight-image"><br>    <!-- 顶部导航 --><br>    <van-nav-bar title="景点图片" left-text="返回" left-arrow @click-left="goBack" /><br>    <!-- 图片列表 --><br>    <van-pull-refresh v-model="refreshing" @refresh="onRefresh"><br>      <van-list<br>        class="sight-image"<br>        v-model="loading"<br>        :finished="finished"<br>        finished-text="没有更多了"<br>        :error.sync="error"<br>        error-text="请求失败,点击重新加载"<br>        @load="getImageList"<br>      ><br>        <van-row><br>          <van-col span="12" v-for="(item, index) in imageList" :key="index"><br>            <van-image width="100%" height="100%" :src="item.img" @click="showPreview=true"/><br>          </van-col><br>        </van-row><br>      </van-list><br>    </van-pull-refresh><br>    <!-- //图片列表 --><br><br>    <!-- 图片预览 --><br>    <van-image-preview v-model="showPreview" :images="imgUrlList" @change="onChange"><br>      <template v-slot:index>第{{ index + 1 }}页 / 共{{ imageList.length }}张</template><br>    </van-image-preview><br>    <!-- // 图片预览 --><br>  </div><br></template><br><script><br>import { ajax } from '@/utils/ajax'<br>import { SightApis } from '@/utils/apis'<br>export default {<br>  components: {},<br>  data () {<br>    return {<br>      // 图片列表<br>      imageList: [],<br>      // 图片预览<br>      index: 0,<br>      showPreview: false,<br>      // 当前的页码<br>      currentPage: 1,<br>      // 正在加载中<br>      loading: false,<br>      // 所有的内容加载完<br>      finished: false,<br>      // 请求失败<br>      error: false,<br>      // 是否正在下拉刷新中<br>      refreshing: false<br>    }<br>  },<br>  methods: {<br>    /**<br>     * 预览切换图片<br>     */<br>    onChange (index) {<br>      this.index = index<br>    },<br>    goBack () {<br>      this.$router.go(-1)<br>    },<br>    /**<br>     * 下拉刷新执行<br>     */<br>    onRefresh () {<br>      // 清空数据<br>      this.imageList = []<br>      this.currentPage = 1<br><br>      this.finished = false<br>      this.error = false<br>    },<br>    /**<br>     * 图片列表<br>     */<br>    getImageList () {<br>      const url = SightApis.sightImageUrl.replace('#{id}', this.id)<br>      ajax.get(url, {<br>        params: {<br>          page: this.currentPage<br>        }<br>      }).then(({ data: { meta, objects } }) => {<br>        this.imageList = this.imageList.concat(objects)<br>        // 加载状态结束<br>        this.loading = false<br>        // 设置下一页的页码<br>        this.currentPage = meta.current_page + 1<br>        // 数据全部加载完成: 当前页面 == 总页数<br>        if (meta.current_page === meta.page_count) {<br>          this.finished = true<br>        }<br>        this.refreshing = false<br>      }).catch(() => {<br>        this.loading = false<br>        this.error = true<br>        this.refreshing = false<br>      })<br>    }<br>  },<br>  computed: {<br>    /**<br>     * 图片地址<br>     */<br>    imgUrlList () {<br>      return this.imageList.map(item => item.img)<br>    }<br>  },<br>  mounted () {<br>    this.id = this.$route.params.id<br>  }<br>}<br></script><br>

​祝:学习愉快!

  • 提问者 Lester #1

    你好,下拉刷新没有问题,问题是滚动加载,后端paginate_by=10,每页10笔,共5页,ajax请求的返回也都正常,包括页码,比如下图的page=3,现我故意将48张图都设给同一个景点,滚动加载的话,应该会有5页,page_count=5,但在第一页之后,依然是page=NaN,即page=1之后,还是page=NaN,但ajax的每一页请求都是正常的,比如postman到(http://localhost:8080/api/sight/image/list/11/?page=),返回json,正常,表示page是取到了,不了解的是,为什么会被解析成page=NaN,而且在第1页时,并不会滚动加载,是vant组件的问题?谢谢,我这边的前端代码,和课程提供的一样,


    http://img1.sycdn.imooc.com//climg/6047272809ddb00408600726.jpg

    http://img1.sycdn.imooc.com//climg/6047291709c9d14a04400781.jpg



    2021-03-09 15:52:05
  • 提问者 Lester #2
    1
    // 我这边的前端代码<br>​<template><br>  <!-- 景点图片 --><br>  <div class="page-sight-image"><br>    <!-- 顶部导航 --><br>    <van-nav-bar title="景点图片" left-text="返回" left-arrow @click-left="goBack" fixed /><br>    <!-- 图片列表 --><br>    <van-pull-refresh v-model="refreshing" @refresh="onRefresh"><br>      <van-list<br>        class="sight-image"<br>        v-model="loading"<br>        :finished="finished"<br>        finished-text="没有更多了"<br>        error-text="请求失败,点击重新加载"<br>        :error.sync="error"<br>        @load="getImageList"<br>      ><br>        <van-row><br>          <van-col span="12" v-for="(item, index) in imageList" :key="index"><br>            <van-image width="100%" height="100%" :src="item.img" @click="showPreview=true"/><br>          </van-col><br>        </van-row><br>      </van-list><br>    </van-pull-refresh><br>    <!-- //图片列表 --><br><br>    <!-- 图片预览 --><br>    <van-image-preview v-model="showPreview" :images="imgUrlList" @change="onChange"><br>      <template v-slot:index>第{{ index + 1 }}张 / 共{{ imageList.length }}张</template><br>    </van-image-preview><br>    <!-- // 图片预览 --><br>  </div><br></template><br><script><br>import { ajax } from '@/utils/ajax'<br>import { SightApis } from '@/utils/apis'<br>export default {<br>  components: {},<br>  data () {<br>    return {<br>      id: 1,<br>      // 图片列表<br>      imageList: [],<br>      // 图片预览<br>      index: 0,<br>      showPreview: false,<br>      // 当前的页码<br>      currentPage: 1,<br>      // 正在加载中<br>      loading: false,<br>      // 所有的内容加载完<br>      finished: false,<br>      // 请求失败<br>      error: false,<br>      // 是否正在下拉刷新中<br>      refreshing: false<br>    }<br>  },<br>  methods: {<br>    /**<br>     * 预览切换图片<br>     */<br>    onChange (index) {<br>      this.index = index<br>    },<br>    goBack () {<br>      this.$router.go(-1)<br>    },<br>    /**<br>     * 下拉刷新执行<br>     */<br>    onRefresh () {<br>      // 清空数据<br>      this.imageList = []<br>      this.currentPage = 1<br><br>      this.finished = false<br>      this.error = false<br>      this.getImageList()<br>    },<br>    /**<br>     * 图片列表<br>     */<br>    getImageList () {<br>      const url = SightApis.sightImageUrl.replace('#{id}', this.id)<br>      // console.log('xx:', this.currentPage)<br>      ajax.get(url, {<br>        params: {<br>          page: this.currentPage<br>        }<br>      }).then(({ data: { meta, objects } }) => {<br>        this.imageList = this.imageList.concat(objects)<br>        // 加载状态结束<br>        this.loading = false<br>        // 设置下一页的页码<br>        // this.currentPage += 1<br>        this.currentPage = meta.current_page + 1<br>        // 数据全部加载完成: 当前页面 == 总页数<br>        if (meta.current_page === meta.page_count) {<br>          this.finished = true<br>          // this.error = false<br>        }<br>        // this.error = false<br>        this.refreshing = false<br>      }).catch(() => {<br>        this.loading = false<br>        this.error = true<br>        this.refreshing = false<br>      })<br>    }<br>  },<br>  computed: {<br>    /**<br>     * 图片地址<br>     */<br>    imgUrlList () {<br>      return this.imageList.map(item => item.img)<br>    }<br>  },<br>  mounted () {<br>    this.id = this.$route.params.id<br>    // this.error = false<br>  }<br>}<br></script><br><style lang="less"><br>.page-sight-image {<br>  padding: 50px 5px 0 5px;<br>  .van-col {<br>    padding: 5px;<br>  }<br>}<br></style><br><br>


    2021-03-09 15:53:48
  • 提问者 Lester #3

    你好,我的问题解决了,我改了前端代码,请见下图:

    改成前端页码+1,再判断前端与后端的页码,请见下图:



    http://img1.sycdn.imooc.com//climg/604730da096141a306540237.jpg


    2021-03-09 16:26:48
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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