我正在使用React Native 0.33.1,我使用带有Refreshcontrol的ListView来指示正在加载数据。问题出在iOS上,如果ListView数据源为空,则不会显示加载指示符,因此用户看不到正在加载数据。但是如果ListView不是空的,一切正常。即使使用空的ListView,Android上也没有问题。 如果没有数据,我试图用Loading指示替换整个ListView,但是当加载数据时,ListView的顶部没有正确对齐,并且在我正在使用的NavigatorIOS的导航栏后面。 这是我的渲染方法代码和开头的加载:
render(){
return <View style={{flex:1, flexDirection:'column', backgroundColor:'#FFF'}}>
<ListView
refreshControl={ <RefreshControl refreshing={this.state.refreshing} onRefresh={this._onRefresh.bind(this)} /> }
style={{flex:1, flexDirection:'column'}}
dataSource={this.state.dataSource}
enableEmptySections={true}
renderRow={this.renderRow}
renderSectionHeader={this.renderSectionHeader}>
</ListView>
</View>
}
componentDidMount(){
this.unmounting = false;
this.loadData();
}
loadData(){
this.setState({refreshing:true});
//Code to fetch data async
.then((result) => {
this.setState({refreshing:false, result:result});
});
}