gpt4 book ai didi

relayjs - 如何在现代中继中强制获取

转载 作者:行者123 更新时间:2023-12-04 13:15:44 25 4
gpt4 key购买 nike

我的顶级组件包括一个包含用户凭据的设置对话框。当在该对话框中进行更改并关闭对话框(状态更改为 dialogOpen=false )时,我想强制从服务器进行新的提取,因为凭据可能已更改。在 Relay classic 中,顶级组件包括一个 Relay.RootContainer,所以我刚刚通过了 forceFetch=true到那个 RootContainer。在 Relay modern 中,我的顶级组件包括一个 QueryRenderer。那么在这种情况下如何强制重新获取?

我发现了这个问题,https://github.com/facebook/relay/issues/1684 ,这似乎表明 QueryRenderer 总是重新获取,但在我的测试中似乎并非如此。至少,当设置对话框关闭时,我没有看到我的 fetchQuery 在状态更改/刷新后被调用。我想我可能没有完全理解那个问题中的陈述。

任何人都可以澄清吗?

最佳答案

好的,我想我在这里找到了断开连接。在检查 QueryRenderer 的源代码时(不知道为什么我一开始没有这样做),我看到如果 props.variables 会发生一个 fetch变化。所以我只是定义了一个名为 refetch 的 bool 实例变量并在我的对话框关闭时翻转它的值:

<QueryRenderer
environment={environment}
query={query}
variables={{refetch: this.refetch}}

由于这似乎没有很好的记录,我将在这里提到当以下任何条件为真时 QueryRenderer 将重新获取:
  • 当前 query参数不等于前一个query范围。
  • 当前 environment参数不等于前一个environment范围。
  • 当前 variables参数不等于前一个variables范围。
  • 关于relayjs - 如何在现代中继中强制获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44723782/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com