使用RefreshControl从API更新信息

问题描述

我正在遵循this示例来尝试创建刷新控件,我希望用户能够刷新页面并更新API中的信息。 此页面最初加载页面时会加载一次,而“拉动刷新”仅需等待2秒钟。 我已经尝试了很多事情,例如创建API函数获取数据或在onRefresh()函数中发出请求,这些都不起作用。

用户刷新页面时,我需要更改代码中的哪些内容以更新数据?

代码

const wait = (timeout) => {
 return new Promise(resolve => {
  setTimeout(resolve,timeout);
 });
}

function HomeScreen() {

const [refreshing,setRefreshing] = React.useState(false);
const [view,setview] = useState('');
const tableHead =  ['Room Number','Created at','Type'];

const onRefresh = React.useCallback(() => {
setRefreshing(true);

wait(2000).then(() => setRefreshing(false));
},[]);

fetch('https://xxx.xxxxxx.com/getrooms')
  .then(response => response.text())
  .then(data => setview(data))

const tableData = [];
const ap = view.split('(');
for (let i = 0; i < ap.length - 1; i += 3) 
{
    const rowData = [];
    for (let j = i; j < i + 3; j += 1) 
    {
        rowData.push(ap[j]);
    }
    tableData.push(rowData);
}
return (
<View style={{flex: 1,padding: 16,paddingTop: 30,backgroundColor: '#D8D8D8'}}>
<SafeAreaView style={{flex: 1,marginTop: Constants.statusBarHeight}}>
  <ScrollView
    contentContainerStyle={styles.scrollView}
    refreshControl={
      <RefreshControl refreshing={refreshing} onRefresh={onRefresh} />
    }
  >
  <Table borderStyle={{borderWidth: 2,borderColor: '#c8e1ff'}}>
    <Row data={tableHead} style={{height: 40,backgroundColor: '#f1f8ff'}}/>
    <Rows data={tableData} style={{margin: 6}}/>
  </Table>
  </ScrollView>
</SafeAreaView>
</View>
 );
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)