react-native - 在 react-native 中刷新数据
问题描述
嗨,所以我想在下拉时刷新数据,但我不知道该怎么做。这是我的代码:
async componentDidMount() {
this.getData();
}
async getData(){
const url = "SomeUrl";
await fetch(url)
.then(res => res.json())
.then(res => {
this.setState({
dataSource: res
});
})
.catch(error => {
console.log("get data error:" + error);
});
}
<SafeAreaView style={{ flex:1 }}>
<View style={styles.main_container}>
<FlatList style={styles.flatList}
data={this.state.dataSource}
extraData = {this.state}
keyExtractor={(item, index) => item.MembreId}
renderItem={(item) => <UserItem user={item} displayDetailForUser={this._displayDetailForUser} />}
numColumns={numColumns}
refreshing={this.state.refreshing}
onRefresh={this.handleRefresh} />
</View>
</SafeAreaView>
所以我在这里获取数据dataSource
。我已经尝试过了,但它正在无休止地加载。我是否还需dataSource
要先擦除以前的数据?
handleRefresh = () => {
this.setState (
{
refreshing: true,
},
() => {
setTimeout(() => {this.getData()}, 1000)
}
);
};
解决方案
数据返回后,您似乎没有将刷新设置为 false。试试这个getData:
async getData(){
const url = "SomeUrl";
await fetch(url)
.then(res => res.json())
.then(res => {
this.setState({
dataSource: res,
refreshing: false,
});
})
.catch(error => {
console.log("get data error:" + error);
});
}
推荐阅读
- react-native - React Native + Expo:从 url 保存 pdf/word 文档并使用链接在不同的应用程序中打开文件
- c# - Linq to SQL 不会对所有行求和
- c# - 懒惰的
为什么会得到 Func - angular - Angular Universal (SSR) 不预渲染语言
- go - 如果结构有参数实现接口的方法,则结构不实现接口
- html - html/thymeleaf - 如何防止输入字段被检测为信用卡相关字段?
- pyqt - PyQt - QTableview 中的 QCombobox
- sql-server - 根据另一个表的计数更新表
- windows - 使用键盘快捷键时:从 C:\Windows\system32 而不是当前目录调用命令
- c# - Windows.Web.Http.HttpClient post 发送特殊字符(从客户端检测到潜在危险的 Request.Form 值)