[英]Can't get Flatlist pull to refresh working
該文檔是非常簡單的,但是以某種方式我無法獲得更新的動力。 數據已正確加載到componentDidMount
但是當我嘗試下拉列表時未調用_refresh
。 我在iPhone和Android設備上嘗試過。 在Android上,我什至無法下拉列表(無橡皮效果)。
這是我的代碼:
export default class HomeScreen extends Component {
static navigationOptions = { header: null };
state = { data: [], isLoading: true };
_fetchData = async () => {
const data = [];
try {
const response = await fetch('https://randomuser.me/api/?results=10');
const responseJSON = await response.json();
this.setState({ data: responseJSON.results, isLoading: false });
} catch (error) {
alert('some error');
this.setState({ isLoading: false });
}
};
_refresh = () => {
alert('this is never be shown');
this.setState({ isLoading: true });
this._fetchData();
};
componentDidMount() {
this._fetchData();
}
render() {
if (this.state.isLoading)
return (
<View style={styles.container}>
<ActivityIndicator size="large" color="darkorange" />
</View>
);
return (
<View style={styles.container}>
<FlatList
data={this.state.data}
keyExtractor={item => item.email}
renderItem={({ item }) => (
<FriendListItem
friend={item}
onPress={() =>
this.props.navigation.navigate('FriendsScreen', {
friend: item,
})
}
/>
)}
ItemSeparatorComponent={() => <View style={styles.listSeparator} />}
ListEmptyComponent={() => <Text>empty</Text>}
onRefresh={this._refresh}
refreshing={this.state.isLoading}
/>
</View>
);
}
}
仔細檢查您的FlatList導入。 我很確定您是從react-native-gesture-handler導入FlatList的。 如果是,則將其刪除。
FlatList應該從react-native導入,如下所示。
從'react-native'導入{FlatList};
如果不是上述情況,請與我分享您的StyleSheet。
讓我知道是否有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.