Yenilemek için aşağı çekerken bir hata alıyorum. ListView'te RefreshControl bilinmeyen bir nedenle çalışmıyor
kodu yanlış neler oluyor bu-
loadData: function(){
var _this = this;
this.API();
//check if data is loaded
setTimeout(function(){
if(_this.isMounted()){
if(_this.state.loaded===false){
_this.setState({
isReloadRequired: true
})
}
}
}, 10000);
},
API: function(){
var _this = this;
this.setState({ rawData: [], isReloadRequired: false, loaded: false, isRefreshing: true });
Parse.Cloud.run('fetchBookingListForUserCloudFunction', {
user_id: Parse.User.current().getUsername()
}).then(
function(result){
var cleanData = [];
for(var i=0;i<result.length;i++){
cleanData.push(result[i].toJSON());
}
_this.setState({
rawData: _this.state.rawData.concat(cleanData),
dataSource: _this.state.dataSource.cloneWithRows(cleanData),
loaded: true,
isReloadRequired: false,
isRefreshing: false,
});
},
function(error){
_this.setState({ isReloadRequired: true, loaded: false, isRefreshing: false })
console.log("[HOME API] Error: "+ JSON.stringify(error, null, 2));
}
);
},
render: function(){
return(
{this.state.loaded ? this.renderListView() : this.renderLoadingView()}
)
},
renderListView: function(){
if(this.state.rawData.length === 0){
return(
<View style={styles.container}>
<Text>Tap to book.</Text>
</View>
);
}
return(
<ListView
dataSource={this.state.dataSource}
renderRow={this.renderReservation}
style={styles.listView}
refreshControl={
<RefreshControl
refreshing={this.state.isRefreshing}
onRefresh={this.loadData}
/>
}
/>
);
},
renderLoadingView: function(){
return(
<View style={styles.container}>
<LoadingView />
</View>
)
},
gibi bir şey? Github'da da hiçbir şey bulamıyorum. Neler yanlış gidiyor? Github'da da hiçbir şey bulamıyorum.
Merhaba GÜNCELLEME. Rnplay'de örnek oluşturduğunuz için teşekkür ederiz. Ama ben bu sorunun nedenini daralttım. render()
içinde RefreshControl
ve ListView
kullanıyorum, beklendiği gibi çalışır. Ancak, renderlistView()
gibi başka bir işlevden RefreshControl
ile döndüğümde, yukarıda belirtilen hatayı atar. Hatta this.loadData().bind(this)
'u denedim ama bu da işe yaramıyor.
Bu, 3 gün önce düzeltildi. Şu git işlemini gerçekleştirin: https://github.com/facebook/react-native/commit/eac617d6ee74fb20cd69fdbc78a77ee07f5e6ba3 –