我正在关注一个中继graphql教程,我对此代码感到困惑:
const GraphQLTodo = new GraphQLObjectType({
name: 'Todo',
fields: {
id: globalIdField('Todo'),
text: {
type: GraphQLString,
resolve: (obj) => obj.text,
},
complete: {
type: GraphQLBoolean,
resolve: (obj) => obj.complete,
},
},
interfaces: [nodeInterface],
});
关于文本和完整字段的决心,obj来自哪里?是来自查询的obj参数?而且,我如何从查询中解析id?我不需要解决它吗?例如,这是id字段代码:
id: {
id: globalIdField('Todo'),
resolve: (obj) => obj.id,
}
以上代码是否有效并且不是多余的?如何正确创建Id字段以符合中继?
1 回答
obj
是记录本身,通常采用从持久存储中获取的任何格式 . 在这种情况下,它是一个Todo
对象,至少有两个属性:text
和complete
. 这使得解析功能变得微不足道 . 存在解析函数,因此您可以执行更复杂的操作,如下所示:对于符合Relay标准的ID,我认为您不需要做任何事情 .
globalIdField
为你做的 .