在探索与 @apollo/client 的 react 时,我使用 useQuery
进行首次加载,并使用 useLazyQuery
进行按需加载(在执行某些操作、刷新、创建等之后)。 )如下:
const { data} = useQuery(GET_POSTS_QUERY);
const [fetchPosts, { data: fetchedposts}] = useLazyQuery(GET_POSTS_QUERY);
我正在 JSX 标记中渲染 data
,但由于名称冲突,我需要将按需获取的数据获取到其他名为 fetchedposts
的 const。
在这种情况下,我将如何更新用户界面上的数据?我的 UI 使用的是 data
而不是 fetchedposts
!
有什么办法可以合并这两个状态。或者我应该使用 useState
进行单独的状态并使用这些更新相同的状态?
最佳答案
经过更多研究,我知道我可以利用 useQuery 返回的 refetch
函数来执行此类操作!
所以我在这里得到的是,在这种情况下我可以完全避免 useLazyQuery 并简单地重新获取。
const { data, loading, error, refetch} = useQuery(GET_POSTS_QUERY);
.
.
.
<button className="btn btn-raised btn-primary" onClick={() => refetch()}>
Fetch Posts on Demand
</button>
关于reactjs - 合并 useQuery 和 useLazyQuery 的结果 - React Apollo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62980770/