问题描述
我用 antd-mobile 的长列表渲染页面,用 axios 发请求,有时候有一部分数据拿不到,有时候又没问题,这是为什么?
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
我用 axios 创建实例时,用了 transformResponse 配置项。
transformResponse(data){
if(!data){
//数据没拿到
return;
}
if(typeof data === 'string'){
//数据是字符串
data = JSON.parse(data);
}
let o = {};
if (data.songs) {
o.data = data.songs.list;
o.info = data.info;
o.origin = 'singers-info'
}
return o;
}
在长列表组件里这样发的请求。
//根据 id 获取歌曲列表
getSongListById = (callback, pageIndex) => {
let {match} = this.props;
let id = match.params.id;
if(id){
//id 不是空字符串
let promise = {};
if(match.path === '/singer/info/:id'){
//歌手信息页
promise = getSingerInfo({
singerId: id,
page: pageIndex
});
}
promise.then(({data}) => {
this.curList = data.data;
console.log(data);
this.list.push(...data.data);
callback(this.list);
});
}
}
用postman测试一下看看有没有数据,如果有就是你代码有问题