reactjs - 合并 useQuery 和 useLazyQuery 的结果 - React Apollo

标签 reactjs react-hooks react-apollo apollo-client

在探索与 @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/

相关文章:

javascript - typescript - 使用日期时无法更新对象数组

javascript - React 中的简单轮播 - 如何注册滚动到下一张幻灯片?

javascript - React 切换类 + CSS 转换,不起作用……为什么?

reactjs - 如何让react-bootstrap在react-storybook中工作

javascript - 对状态中的元素进行排序后,React 列表不会重新渲染表格

reactjs - 在 React.useState 中保存对象

javascript - JavaScript/React 中的构造函数是必需的吗?

graphql - 将结果写入存储以供查询时出错。无法读取未定义的属性 'query'

reactjs - 更改 jwt token 的 Apollo 客户端选项

reactjs - Apollo React 使用查询结果调用异步函数