TypeError: Cannot read property ‘songs‘ of undefined

在做一个小程序项目中,当我在搜索框输入数据后,再点击清除,控制台报错:TypeError: Cannot read property 'songs' of undefined

原因是:我监听了搜索框的输入,当搜索框输入数据时,会调用一个异步请求函数,传入输入的数据。在没有数据时就无法请求到songs的数据所以返回undefined

解决:

需要在进行网络请求之前判断搜索框输入是否为空,如果为空就return

async fetchReqSearchAnswer(keywords,limit=10){
    if(this.data.keywords==='')return
    let res=await reqSearchAnswer(this.data.keywords)
    const songs=res.result.songs
    if(res.code===200){
      this.setData({value:songs})
    }else{
      this.setData({ value: ['暂未搜索到相关内容'] })
    }

你可能感兴趣的:(前端,javascript)