【问题标题】:Getting a value of a sibling field in a field resolver在字段解析器中获取兄弟字段的值
【发布时间】:2021-10-27 20:43:40
【问题描述】:

说,我有这些 typeDef(只是一个例子):

type CityInfo {
  CityState: {
    City: String!
    State: String!    
  }

  Zip: String!
}

type Query {
  CitiesStatesZips: [CityInfo]
}

现在,假设有一个 REST API 可以为我提供邮政编码列表,还有另一个 REST API 可以按邮政编码返回城市/州。我可以写这个解析器:

const resolvers = {
  Query: {
    CitiesStatesZips: (parent, args, {dataSources}) => dataSources.ZipApi.getZipCodes()
  },
  CityInfo: {
    CityState: (parent, args, { dataSources }) => dataSources.CityStateApi(** HOW DO I PASS ZIP HERE **) 
  }
}

CityState 字段解析器中,我需要传递同一对象的 Zip 字段的值 - 我如何访问它?

【问题讨论】:

  • resolvers.CityInfo.Zip?
  • 只是``parent.zip`(字段通常小写)...假设CitiesStatesZips返回一个带有zip字段的对象数组(肯定会尽快解决)
  • @xadm - 成功了,谢谢。您可以将此添加为答案,我将其标记为这样

标签: node.js graphql apollo apollo-server


【解决方案1】:

如果CitiesStatesZips 返回带有zip 字段的对象数组(CityInfo 类型)...

...然后zip 在调用CityState 解析器时已经解析...然后您可以简单地使用parent.zip 作为数据源调用的参数。

【讨论】:

    猜你喜欢
    • 2017-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多