写小程序时出现的问题Cannot read property 'map' of undefined,显示map未定义

写小程序出现的问题就是在获取网易云音乐视频接口时并不能获取,出现map未定义报错。

async getVideoList(navId){
    if(!navId){ //判断navId为空串的情况
      return;
    }
    let videoListData = await request('/video/group',{id:navId});
    let index= 0;
    
    let videoList = videoListData.datas.map(item =>{
      item.id = index++;
      return item;
    })
    this.setData({
      videoList
    })
  },

img

想知道怎么解决这个问题,不会修改,有人说登录一下,但是登录完还是没有

img

videoListData.datas有值吗

看看这个videoListData.datas 应该是videoListData.datas这个字段没有数据产生的

你打印下videoListData.datas


async getVideoList(navId){
    if(!navId){ //判断navId为空串的情况
      return;
    }
    let videoListData = await request('/video/group',{id:navId});
    let index= 0;
    
    let videoList = videoListData.datas&&videoListData.datas.map(item =>{
      item.id = index++;
      return item;
    })
    this.setData({
      videoList
    })
  },
 

登录了但是返回未登录那就是请求的方法不对,建议先加个判断防止报错,然后你看看请求时传参有没有问题吧

1.出现问题很明显类型错误不是数组类型,map数组类型才行
解决:
1.要么map之前做个判空处理
2.要么返回数组类型,没数据返回[],空数组