javascript - 如何防止 react-query 最初获取但启用重新获取?
问题描述
我react-query v3.13
用来从 API 获取数据。
我想要做的是从某个点(例如,单击开始按钮时)定期获取 API,而不是从调用 useQuery 时开始。
我尝试了以下方法。
- 将
enabled
属性设置false
为禁用自动查询,但它也禁用重新获取。
我找不到将enabled
属性重新启用/设置为true
. 而且我不得不setTimeout
自己使用定期重新获取。 - 保留
enabled
属性,true
但我找不到禁用初始提取的方法。
有没有合适的方法来做到这一点?
解决方案
如果您将enabled
选项硬编码为false
,您仍然可以使用refetch
返回的方法useQuery
来强制触发提取。但查询仍将被禁用,因此没有后台更新。
如果您想要一个被禁用但在调用函数时启用的惰性,最好的方法是使用具有本地状态的 useQuery 的简单抽象:
const useLazyQuery = (key, fn, options) => {
const [enabled, setEnabled] = useState(false)
return [() => setEnabled(true), useQuery(key, fn, { ...options, enabled })]
}
推荐阅读
- android - 从非默认应用程序发送 SMS 需要在 Color OS 设备上进行确认。有什么解决方法吗?
- swift - Swift 命令行工具:终止通知
- selenium - 单击后等待时服务器错误500
- php - 如何在html中嵌入字体文件?
- android - 错误:SMS API 在 Android 应用程序中出现错误
- python - 多标签分类
- unix - 区分 ANSI 终端上的 Esc 和其他特殊键
- opengl-es-2.0 - GPUImage草图
- firebase - React Native - 当所有组件都在其中渲染时如何隐藏启动画面?
- python - 当我在表格视图中单击文件时,文件内容未显示