【问题标题】:Graphql resolve function on nested fields not getting called [duplicate]未调用嵌套字段上的 Graphql 解析函数 [重复]
【发布时间】:2017-06-06 23:13:55
【问题描述】:

使用此查询,在 graphQL 中,desiredSubfield 上的解析函数不会被调用,并且查询返回 null。如何正确解析嵌套字段?

查询:

{
    "query": "query ($requiredArg: String!, $anotherArg: String) { user(requiredArg: $requiredArg) { desiredSubfield(anotherArg: $anotherArg) { _id name} } }",
    "variables": {
        "requiredArg": "someString",
        "anotherArg": "anotherString"
    }
}

关联对象:

export default {
  type: userType,
  args: {
    requiredArg: {
      name: 'requiredArg',
      type: new GraphQLNonNull(GraphQLString),
    },
  fields: () => {
    return {
      desiredSubfield: {
        type: subfieldType,
        args: subfieldType.args,
        resolve(source, params, root, ast) {
          console.log('subfield resolve is hit');
          return fetchUser();
        },
      },
    };
  },
  resolve(source, params, root, ast) {
    console.log('in main resolve');
  }
};

【问题讨论】:

    标签: node.js graphql


    【解决方案1】:

    好吧,看来我想通了(sigh

    问题是我为非嵌套字段编写的虚拟解析函数没有返回。看看修复:

    export default {
      type: userType,
      args: {
        requiredArg: {
          name: 'requiredArg',
          type: new GraphQLNonNull(GraphQLString),
        },
      fields: () => {
        return {
          desiredSubfield: {
            type: subfieldType,
            args: subfieldType.args,
            resolve(source, params, root, ast) {
              console.log('subfield resolve is hit');
              return fetchUser();
            },
          },
        };
      },
      resolve(source, params, root, ast) {
        console.log('in main resolve');
        return true;
      }
    };
    

    我会把这个留在这里,以防其他人遇到同样的事情。

    【讨论】:

      猜你喜欢
      • 2021-07-28
      • 1970-01-01
      • 2021-07-20
      • 2019-05-18
      • 2018-08-25
      • 2019-03-27
      • 2019-11-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多