0

如果我使用下面的代码它不起作用:第二个查询 ( team()) 使播放器null处于缓存中。

fragment PLAYER on Player {
  id
  createdAt
  team {
    ...TEAM
  }
}

fragment TEAM on Team {
  id
  createdAt
}

query player($id: ID!) {
  player(id: $id) {
    ...PLAYER
  }
}

query team($id: ID!) {
  team(id: $id) {
    ...TEAM
    player {
      ...PLAYER
    }
  }
}

下面的代码解决了这个问题(这是我在代码库中所做的唯一更改):

fragment PLAYER on Player {
  id
  createdAt
  # removed these lines from here:
  # team {
  #     ...TEAM
  # }
}

fragment TEAM on Team {
  id
  createdAt
}

query player($id: ID!) {
  player(id: $id) {
    ...PLAYER
    # to here:
    team {
      ...TEAM
    }
  }
}

query team($id: ID!) {
  team(id: $id) {
    ...TEAM
    player {
      ...PLAYER
    }
  }
}

我的问题是:为什么它适用于查询而不是片段?

4

0 回答 0