如何在apollo / graphql / react中的refetchQuery期间将Id传递给组件中未调用的查询

时间:2018-03-08 15:28:45

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

我正在尝试获取需要将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 } };
}

但正如我所说,我不会在组件中调用此查询,我认为这就是它无法正常工作的原因。

1 个答案:

答案 0 :(得分:2)

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

  

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

     

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

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

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