在探索使用@apolo/client进行react时,我使用useQuery
进行首次加载&useLazyQuery
用于按需加载(经过一些操作、刷新、创建等(,如下所示:
const { data} = useQuery(GET_POSTS_QUERY);
const [fetchPosts, { data: fetchedposts}] = useLazyQuery(GET_POSTS_QUERY);
我在JSX标记中呈现data
,但由于名称冲突,我需要将按需提取的数据获取到其他名为fetchedposts
的常量中。
在这种情况下,我将如何更新UI上的数据?我的UI使用data
&不是fetchedposts
!
有什么办法可以合并这两个州吗。或者我应该使用useState
&使用这些更新相同的?
经过进一步的研究,我知道我可以使用useQuery返回的refetch
函数来执行这样的操作!
所以我在这里得到的是,在这种情况下,我可以完全避免使用LazyQuery&只需重新蚀刻即可。
const { data, loading, error, refetch} = useQuery(GET_POSTS_QUERY);
.
.
.
<button className="btn btn-raised btn-primary" onClick={() => refetch()}>
Fetch Posts on Demand
</button>