GraphQL分辨率在未被调用的嵌套字段上



在此查询中,在GraphQl中,desiredSubfield上的Resolve函数未被调用,并且查询返回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');
  }
};

好吧,看起来我想知道它( 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;
  }
};

如果其他人遇到同一件事,我将在此处留在这里。

最新更新