当前位置: 首页 > 知识库问答 >
问题:

使用react-apollo查询的不同方法

马梓
2023-03-14

因此,我正在寻找关于何时使用这些不同类型的查询模式来获取数据的建议

共有1个答案

朱越
2023-03-14

查询组件和graphql HOC具有相同的基本功能,因此从这个角度来看不应该有区别。对于查询组件不运行生命周期方法的示例,您可以将查询组件从组件中向上移动一个级别,并且它的工作方式完全相同。就像这样:

const CompQueryWrapper = () => {
  return (
    <Query ...>
      {({ data, loading, error }) => <CompWithLifecycle data={data} />}
    </Query>
}

您还可以将生命周期逻辑向下移动一个级别。在这种情况下,反应/组件有时很方便,当你只想在道具更改时触发一些东西,但不想经历制作新类组件的仪式时。

因此,对于您的特定情况,我建议将查询向上移动,以便它触发生命周期,或者将生命周期逻辑向下移动,以便它可以由查询结果触发。

通常,我用来进行查询的两个组件是

  1. 查询组件
  2. ApolloConsumer(它基本上只是withApollo的渲染道具版本)

如果我可以使用查询组件,我就使用查询组件。它适用于大多数情况。ApolloConsumer用于查询的用例是当您不想立即触发查询时。例如,假设您有一个表单需要用户提供一些信息,然后根据该输入获取一些数据。这不是一个突变,因为我们没有更改任何数据,但我们也不希望它像查询组件那样立即触发。在本例中,使用ApolloConsumer获取客户机实例,并使用client.query激发查询。

 类似资料:
  • 问题内容: 在Apollo React文档http://dev.apollodata.com/react/queries.html#basics中,有显示组件时自动获取的示例,但是我想在单击按钮时运行查询。我看到一个在单击按钮时“重新”获取查询的示例,但我不希望它最初进行查询。我看到有一种方法可以调用变异,但是如何调用查询呢? 问题答案: 您可以通过使用高阶组件传递对Apollo客户端的引用来实现

  • 我收到以下错误: 例外管理器。js:74 react apollo只支持每个HOC的查询、订阅或变异。[对象对象]有2个查询、0个订阅和0个突变。您可以使用“编写”将多个操作类型连接到一个组件 即使我在组件中使用了撰写: 的GraphQL: 的GraphQL:

  • 我有一个apollo包装的组件,它应该为我的组件提供来自github graphql v4 api的响应数据。我打算使用应用程序另一部分的字符串(SEARCH\u QUERY)来用于我的gql查询,但github不断返回未定义的字符串。我在关注阿波罗官方文件http://dev.apollodata.com/react/queries.html#graphql-选项。我看不出我做错了什么。 这个没

  • 我在ElasticSearch有索引。其中的文档具有重复的字段值。在查询结果中,我需要删除所有重复项,并且只获得不同的值。例如: PUT localhost:9200/人 POST localhost:9200/人/人 我试图通过字段“name”删除重复的术语聚合,但它不起作用。 获取localhost:9200/person/person/_search 结果: 聚合应用于name=“marry

  • React Apollo ⚠️ THIS PROJECT HAS BEEN DEPRECATED ⚠️ Please note that 4.0.0 is the final version of all React Apollo packages. React Apollo functionality is now directly available from @apollo/client >

  • 如何在Grafana的同一面板中使用来自不同查询的prometheus查询结果。 实例 我在格拉法纳有3个普罗米修斯查询,