2017-06-06 42 views
0

使用此查询,在graphQL中,desiredSubfield上的解析函数没有被调用,查询返回null。我该如何正确解析嵌套字段?未调用嵌套字段上的Graphql解析函数

查询:

{ 
    "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'); 
    } 
}; 

回答

2

嘛,貌似我想通了(叹息

问题是假的决心功能我写的非嵌套字段没有返回。看看修正案:

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; 
    } 
}; 

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