vincenth520/pinche_xcx

回调数据处理问题

tao2years opened this issue · 0 comments

您好,发现了两个小Bug希望可以修复,修复代码在后面。

  1. 在pinche\pages\dynamic\index.js的第24行getList方法中,调用了工具类util的req方法。在对返回值data的处理时,未考虑失败回调返回false的情况。
getList: function getList() {
    util.req('dynamic/getlist', { page: page }, function (**data**) {
        var list = **data.list**;
        ...
        **list.forEach**(function (item) {
            var li = {
                ...
            };
}

可以看到对返回值data的list属性调用了forEach函数。
在pinche\pinche\pages\utils\util.js 的req()函数中可以发现失败回调返回值是false,也就是在false上取list然后再调用foreach方法,此时会报出TypeError: Cannot read property 'forEach' of undefined。

function req(url, data, cb) {
  wx.request({
    success: function success(res) {
      return typeof cb == "function" && cb(res.data);
    },
    fail: function fail() {
      **return typeof cb == "function" && cb(false);**
    }
  });
}

修复:
对返回值进行判断,加上一行 if(data)即可。

getList: function getList() {
    util.req('dynamic/getlist', { page: page }, function (**data**) {
       if(**data**){
            ....
       }
}
  1. 在pinche\pages\my\mydyn.js的第26行也有同样的问题,需要对返回值data进行判断