新闻详情页面排查不出来错误了,希望还有救

来源:

无无法师

2017-03-21

新闻页面取readid的方法有两种,一种是直接赋值,另一种是从read-data.js提取值。一开始的时候两种方法都提取到值,新闻页面可以显示出来。但是在做新闻详情页面的时候,新闻详情页面的值取不到。

http://szimg.mukewang.com/58d084db0001ca1b12790415.jpg

往上查,发现currentReadId没有定义。

http://szimg.mukewang.com/58d07fc60001360104140178.jpg

继续查是options.id也没定义

http://szimg.mukewang.com/58d080380001b25207420374.jpg

然后回到新闻页面,在tapDetail打断点就readid没有定义

http://szimg.mukewang.com/58d080960001a22904660255.jpg

http://szimg.mukewang.com/58d0809700019fb310770399.jpg

在tapSwiper打断点就有定义,可以取到值

http://szimg.mukewang.com/58d080d40001e55410730374.jpg

所以猜测是没有取到read-data.js里面的readId,但是新闻页面的其它数据都取到了,怎么能单单没取到readid?

http://szimg.mukewang.com/58d081e2000151a304450194.jpg

http://szimg.mukewang.com/58d081e30001a90a04520144.jpg

readData处打断点没有定义,但是在appdata里面查看可以看到readlist都取到数据了。

http://szimg.mukewang.com/58d082ca0001294d10770165.jpg

http://szimg.mukewang.com/58d082cb0001f01210380507.jpg

不打断点,看调试台的Wxml是取到值的

http://szimg.mukewang.com/58d08a4e0001aed412260396.jpg

这是我的read.wxml:

<import src="read-template/read-template" />
<view>
  <swiper class="swiper-class">
    <swiper-item class="swiper-item-class" bindtap="tapSwiper" data-readid='3'>
      <image class="swiper-image" src="/image/read/swiper/wx.png">
      </image>
    </swiper-item>
    <swiper-item class="swiper-item-class" bindtap="tapSwiper" data-readid='4'>
      <image class="swiper-image" src="/image/read/swiper/vr.png">
      </image>
    </swiper-item>
    <swiper-item class="swiper-item-class" bindtap="tapSwiper" data-readid='5'>
      <image class="swiper-image" src="/image/read/swiper/iqiyi.png">
      </image>
    </swiper-item>
  </swiper>
  <block wx:for="{{readsList}}">
    <view bindtap="tapDetail" data-readid="{{item.readId}}">
      <template is="read-template" data="{{...item}}" />
    </view>
  </block>
</view>

read.js:

//pages/read/read.js
var readData = require('../../data/read-data.js')
Page({
    data: {
        readsList: null,
    },
    tapDetail: function (e) {
        var readId = e.currentTarget.dataset.readid;
        wx.navigateTo({
            url: "read-detail/read-detail?id=" + readId
        })
    },
    tapSwiper: function (e) {
        var readId = e.currentTarget.dataset.readid;
        wx.navigateTo({
            url: "read-detail/read-detail?id=" + readId
        })
    },
    onLoad: function () {
        this.setData({
            readsList: readData.readList
        })
    }
})


写回答

5回答

7七月

2017-03-21

这个 不是什么问题,就是代码写的有问题,尝试去读取一个undifined变量。这个看代码看不出来,必须要断点调试。

0
2
无无法师
非常感谢!
2017-03-21
共2条回复

7七月

2017-03-21

后来小程序更新了,视频里已经加了字幕啦

0
0

7七月

2017-03-21

那里不应该出现undfined


0
0

7七月

2017-03-21

问题出在require那个js文件的时候,是不是没有在data.js里export输出啊。

0
0

无无法师

提问者

2017-03-21

图图图图图

//szimg.mukewang.com/58d0c7b10001fb7808900665.jpg

0
0

微信小程序入门与实战(全新版) 超20000人学习的好课

4年同步微信官方迭代,累计20000+人学习, 比微信官方更火爆!

23961 学习 · 6930 问题

查看课程