如何有条件地调用 useQuery 钩子?
Posted
技术标签:
【中文标题】如何有条件地调用 useQuery 钩子?【英文标题】:How to call useQuery hook conditionally? 【发布时间】:2020-08-11 18:36:00 【问题描述】:因为Rules of Hooks,不应该有条件地调用钩子。那么如何使用useQuery
有条件地获取数据呢?例如,假设我想在功能组件中获取数据,但前提是 someState === someValue
?即我想避免在任何条件之前调用useQuery()
,因为此时获取数据没有意义。
【问题讨论】:
【参考方案1】:在 apollo 的 documentation 中,它显示有一个可以添加的跳过选项: useQuery(query,skip:someState===someValue)
否则,您也可以useLazyQuery
,如果您想在希望运行时而不是立即运行查询。
【讨论】:
以上是关于如何有条件地调用 useQuery 钩子?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 React 钩子(useContext、useEffect)与 Apollo 反应钩子(useQuery)结合起来
Apollo 客户端没有读取使用 useQuery 钩子传入的变量
如何使用 Apollo 客户端 useQuery 钩子防止不必要的重新获取?