constructor(props) {
super(props);
this.ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
this.state = {
dataSource:this.ds,
}
this.listData = null; //数据源
this.len = null; //数据的个数
this.count = null; //当前数据总页数
this.pageSize = 10; //每次渲染的个数
this.page = 0; //当前页数
}
componentDidMount() {
fetch('http://ued.yihaodian.com:3001/api/70')
.then((response) => response.json())
.then((data) => {
this.listData = data.listData;
this.len = this.listData.length;
this.count = Math.ceil(this.len / this.pageSize);
this.setState({
dataSource:this.ds.cloneWithRows(this.setData())
})
})
.done();
}
setData(){
let num = this.page * this.pageSize; //获取要渲染的个数
if(num>this.len) num = this.len; //如果到最后一页 num 大于 len 那么num等于len 防止空数据
let data = [];
for(let i=0;i<num;i++){
data.push(this.listData[i]);
}
return data;
}
//当列表被滚动到距离最底部不足onEndReachedThreshold个像素的距离时调用
onEndReached = {this.onEnd.bind(this)}
onEnd(){
//如果page<count 那么我们让page++ 重新设置dataSource
if(this.page < this.count){
this.page++;
if(this.setData().length > 0){ //防止重复渲染
this.setState({
dataSource:this.ds.cloneWithRows(this.setData())
})
}
}else{
console.log('已经是最后一页了');
return false;
}
}
render() {
return (
<ListView
style={{height:Dimensions.get('window').height-109}}
dataSource={this.state.dataSource}
renderRow={this.rendList}
onEndReached={this.onEnd.bind(this)}
onEndReachedThreshold={0}
enableEmptySections={true} />
);
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有