antd-mobile ListView怎么用?
问题描述
我想用长列表,但是渲染不出数据,所需数据我已经拿到了。
问题出现的环境背景及自己尝试过哪些方法
我看了 ant design mobile 官网的代码示例,主要是 dataSource 不明白,给出的说明链接不对,感觉问题可能是出在这里。
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
class Songs extends Component {
constructor(props){
super(props);
const getRowData = (dataBlob, sectionID, rowID) => dataBlob[rowID];
const dataSource = new ListView.DataSource({
getRowData,
// getSectionHeaderData: getSectionData,
rowHasChanged: (row1, row2) => row1 !== row2
// sectionHeaderHasChanged: (s1, s2) => s1 !== s2,
});
this.state = {
dataSource
};
}
render() {
let {list} = this.props;
console.log(list);
let index = list.length - 1;
const row = (rowData, sectionID, rowID) => {
if (index < 0) {
//没有歌曲
index = list.length - 1;
}
const obj = list[index--];
return (
<div key={rowID} className="songs-row">{obj.filename}</div>
);
};
return (
<WingBlank size="sm">
<ListView
ref={el => this.lv = el}
dataSource={this.state.dataSource}
/*renderFooter={() => (<div style={{ padding: 30, textAlign: 'center' }}>
{this.state.isLoading ? 'Loading...' : 'Loaded'}
</div>)}*/
renderRow={row}
className="songs-list"
pageSize={30}
scrollRenderAheadDistance={500}
style={{height: '400px'}}
/>
</WingBlank>
);
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
类似
参考了一下别人的代码,dataSource 应该这样用。
今天我又看了一下官网的例子,body 容器的代码比自定义的更简单,没有 Sections,更容易理解。