2017-06-06 86 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; 
    } 
}; 

我會在這裏留下這個以防其他人遇到同樣的事情。