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

时间:2020-10-23 09:06:12

标签: reactjs relay

我是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}
    />

1 个答案:

答案 0 :(得分:1)

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

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

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

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