javascript - 无法从回调 RefreshControl 启动刷新操作
问题描述
我正在使用 RefreshControl 在按下按钮后开始刷新屏幕,代码如下。但是,即使设置了刷新变量的状态,刷新也不会开始。
const [refresh, setRefresh] = useState(false);
....
<ScrollView
style={styles.container}
refreshControl={
<RefreshControl refreshing={refresh} />
}
>
....
<TouchableOpacity
onPress={() => {
setRefresh(true);
if (modal) {
modal.close();
}
}}
>
...
</TouchableOpacity>
</ScrollView>
我可以从 API 回调启动刷新操作,但按钮回调也不起作用。不确定这里需要什么。
解决方案
作为文档:
注意:刷新是一个受控属性,这就是为什么它需要在 onRefresh 函数中设置为 true 否则刷新指示器将立即停止。
因此,您必须refresh
在方法中设置为 true onRefresh()
。
const onRefresh = React.useCallback(() => {
setRefresh(true);
// your api call
setRefresh(false);
}, [refreshing]);
推荐阅读
- laravel - NestJs 项目的“php artisan tinker”相当于什么?
- html - 是否有一些没有分号的有效 HTML 实体?
- laravel-livewire - 如何在 livewire 2 中挂钩验证错误事件?
- html - 如何避免在弹出的抽屉外部导航
- javascript - for循环中的document.click只能工作一次?
- javascript - 我无法获得从solidity 到javascript 的请求列表
- reactjs - React Input event.target.value 与实际输入值不匹配
- regex - 基于正则表达式的 gzip 文件
- javascript - 如何让 JavaScript 输出显示跨度样式?
- java - 从 Flux 中收集所有错误