【问题标题】:How to pass an Id to a query that is not being called in the component during refetchQuery in apollo/graphql/react如何在 apollo/graphql/react 中重新获取查询期间将 Id 传递给组件中未调用的查询
【发布时间】:2018-08-17 00:29:47
【问题描述】:

我正在尝试获取需要将 id 传递给它的查询。但是我没有在组件中调用查询。我尝试使用 options 在导出中传递它,但无法正常工作。

这是我所拥有的:

 this.props
  .addLyricToSong({
    variables: {
      content: this.state.content,
      songId: this.props.songId
    },
    refetchQueries: [{query: fetchSong}]
  });

正如我所说,我得到的错误是查询 fetchSong 需要将 id 传递给它。

我在底部试过这个:

options: props => {
  return { variables: { id: props.songId } };
}

但正如我所说,我没有在组件中调用此查询,我认为这就是它不起作用的原因。

【问题讨论】:

    标签: reactjs graphql apollo react-apollo apollo-client


    【解决方案1】:

    As outlined in the docs,传递给refetchQueries 的数组中的每个对象都应包含两个属性:

    query:Query 是接受 GraphQL 查询的必需属性 使用 graphql-tag 的 gql 模板字符串标签创建。它应该包含 单个 GraphQL 查询操作,一旦 变异已完成。

    [variables]:是一个可选对象 查询接受某些变量时所需的变量。

    因此,如果您的 fetchSong 查询包含任何变量,您还需要传入这些变量:

    refetchQueries: [{query: fetchSong, variables: { id: 'someID' }}]
    

    【讨论】:

      猜你喜欢
      • 2019-04-02
      • 2018-01-27
      • 2018-08-16
      • 2017-04-22
      • 2020-11-12
      • 2018-06-27
      • 2019-01-26
      • 1970-01-01
      • 2019-03-21
      相关资源
      最近更新 更多