在不同的组件中使用精确的QueryRenderer

问题描述

我是Relay&React的初学者。如果我在多个组件中编写此确切的QueryRenderer,网络将多次调用吗?还是只会调用一次?我检查了“网络”标签(Chrome调试器),但只看到1个。如果它将触发多个网络呼叫,那么整合的最佳方法是什么? https://relay.dev/docs/en/query-renderer

    <QueryRenderer
      environment={environment}
      query={graphql`
        query ExampleQuery($pageID: ID!) {
          page(id: $pageID) {
            name
          }
        }
      `}
      variables={{
        pageID: '110798995619330',}}
      render={renderQuery}
    />

解决方法

对于每个中继environmentquery结果将被缓存。

因此,对于相同的查询variables,将不会发生其他网络呼叫。

此外,您应该使用Relay Hooks(类似于FB中使用的),它支持并发模式(实际使用中继的主要原因)。

请注意,这个问题是Premature Optimization的症状

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...