我在Apollo博客上关注this tutorial(这里是my forked repo),而且我已经过了一整天了,仍然可以&# 39;弄清楚为什么我的旋转变压器没有被使用,所以在这里求助。尽管我已经知道了,但我已经完全按照教程的说法进行了尝试。
我能够从模拟中返回数据,所以到目前为止的一切都在工作。
这是简单的schema.js:
const resolvers = {
Query: {
getAuthor(_, args) {
console.log("Author resolved!");
return ({ id: 1, firstName: "Hello", lastName: "world" });
},
allAuthors: () => {
return [{ id: 1, firstName: "Hello", lastName: "world" }];
}
},
Author: {
posts: (author) => {
return [
{ id: 1, title: 'A post', text: 'Some text', views: 2 },
{ id: 2, title: 'A different post', text: 'Different text', views: 300 }
];
}
},
Post: {
author: (post) => {
return { id: 1, firstName: 'Hello', lastName: 'World' };
}
}
};
export default resolvers;
我的resolvers.js文件:
query {
getAuthor {
firstName
}
}
鉴于我正在返回静态对象,因此无需担心同步性问题,因此对我查询的原因有任何疑问:
{
"data": {
"getAuthor": null
}
}
返回null?
Println
答案 0 :(得分:0)
变化:
Query: {
getAuthor(_, args) {
console.log("Author resolved!");
return ({ id: 1, firstName: "Hello", lastName: "world" });
},
为:
Query: {
getAuthor(root, {_, args}) {
console.log("Author resolved!");
return ({ id: 1, firstName: "Hello", lastName: "world" });
},
root并没有很好地记录,但是当您对基本模式类型进行查询时,必须包含它。您正在尝试返回作为GraphQL API入口点的作者类型,因为getAuthor是根查询,因此您必须包含root。
结帐https://www.howtographql.com/graphql-js/2-a-simple-query/。阅读名为:
的部分查询解析流程
它更好地解释了根对象。