使用Apollo Client,我了解如何基于此处显示的道具跳过查询https://ladwhocodes.com/graphql/skip-a-graphql-query-based-on-conditions/31/
但是,如果我想根据状态变化跳过调用查询该怎么办?
我将查询设置为每5秒轮询一次,但是我想在对话框打开时暂停该轮询(以避免重新渲染对话框的父组件,从而导致重新渲染对话框,然后必须将光标聚焦以前的位置。)
我尝试了这个,但是没有用。我想要的行为有可能吗?
P.S:还尝试将对话框的打开/关闭状态移到父组件,但这也不起作用。
libgtk2.0-dev
libwebkitgtk-dev
答案 0 :(得分:0)
嘿,我实际上设法使它正常运行而没有最终停止轮询。 我当时正在简化沙盒项目的演示,并且可以按照我的意愿完全按其要求工作
https://codesandbox.io/s/heuristic-pine-2cxi7?file=/src/EventList.js
最后,我真正想要的是在打开对话框时不要重新渲染该对话框(我认为停止轮询是实现此目的的简便方法,但似乎并非如此)
因此,您可以看到我所做的一切只是将对话框移到了与UseQuery相同的组件中,并且效果很好(因为在对话框中未重新呈现)
在我最初的解决方案中,包含Dialog的子组件将查询数据作为道具接收,因此很显然在数据更改时会重新呈现。