reactjs - 合并 useQuery 和 useLazyQuery 的结果 - React Apollo
问题描述
在探索与@apollo/client 的反应时,我使用useQuery
的是第一次加载和useLazyQuery
按需加载(在某些操作、刷新、创建等之后),如下所示:
const { data} = useQuery(GET_POSTS_QUERY);
const [fetchPosts, { data: fetchedposts}] = useLazyQuery(GET_POSTS_QUERY);
我data
在我的 JSX 标记中渲染,但由于名称冲突,我需要按需获取数据到其他 const named fetchedposts
。
在这种情况下,我将如何更新我的 UI 上的数据?我的用户界面正在使用data
而不是fetchedposts
!
有什么办法可以合并这两个州。或者我应该useState
使用这些单独的状态并更新相同的状态?
解决方案
经过一番研究,我知道我可以利用refetch
useQuery 返回的函数来执行这些操作!
所以我在这里得到的是,在这种情况下,我可以完全避免 useLazyQuery 并且只需重新获取即可。
const { data, loading, error, refetch} = useQuery(GET_POSTS_QUERY);
.
.
.
<button className="btn btn-raised btn-primary" onClick={() => refetch()}>
Fetch Posts on Demand
</button>
推荐阅读
- python-3.x - 在使用机器人框架时,尝试在设置部分添加资源时遇到导入错误消息?
- c# - 遵循这些限制查找数字的算法
- python - 无法将此系列转换为熊猫数据框
- c++ - IWbemObjectSink::Indicate 的多个实例可以同时运行吗?
- node.js - Firestore 文档字段参考
- android - 测试 Android 深层链接导航到活动的最佳实践
- python - 如何在Python中有效地初始化一个特定长度的array.array
- c++ - 根据换行符从字符串中删除子字符串
- python - 如何遍历重复数据框?
- python - mac10.15.2上的pygame安装问题错误