Reactjs 基于状态的Apollo客户端跳过查询
使用Apollo客户端,我看到了如何跳过基于道具的查询,如图所示 但是如果我想跳过基于状态变化的查询怎么办 我有一个查询设置为每5秒轮询一次,但我希望在对话打开时暂停此轮询(以避免重新渲染对话的父组件,导致对话重新渲染,然后必须将光标聚焦到之前的位置) 我试过了,但没用。我想要的行为可能吗 另外,还尝试将对话打开/关闭状态移动到父组件,但也不起作用Reactjs 基于状态的Apollo客户端跳过查询,reactjs,react-apollo,apollo-server,react-apollo-hooks,Reactjs,React Apollo,Apollo Server,React Apollo Hooks,使用Apollo客户端,我看到了如何跳过基于道具的查询,如图所示 但是如果我想跳过基于状态变化的查询怎么办 我有一个查询设置为每5秒轮询一次,但我希望在对话打开时暂停此轮询(以避免重新渲染对话的父组件,导致对话重新渲染,然后必须将光标聚焦到之前的位置) 我试过了,但没用。我想要的行为可能吗 另外,还尝试将对话打开/关闭状态移动到父组件,但也不起作用 const [scoreRunDialougeOpen, setScoreRunDialougeOpen] = useState(false)
const [scoreRunDialougeOpen, setScoreRunDialougeOpen] = useState(false)
const { loading, data, error } = useQuery(GET_SELECTED_HEAT, {
variables: {
id: eventId
},
pollInterval: scoreRunDialougeOpen ? undefined : 5000,
skip: scoreRunDialougeOpen,
});
嘿,伙计们,我最终没有停止投票就成功了。 我正在简化一个沙盒项目的演示,我让它完全按照我想要的方式工作 最后,我真正想要的是对话框在打开时不被重新呈现(我认为停止轮询是实现这一点的简单方法,但似乎不是) 因此,您可以看到,我所做的只是将对话框移动到与UseQuery相同的组件中,它工作正常(如对话框中未重新渲染) 在我的原始解决方案中,包含对话框的子组件作为道具接收查询数据,因此当数据发生更改时,显然会重新呈现