首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >relayjs和graphql错误:错误:"Node“期望字段"id”

relayjs和graphql错误:错误:"Node“期望字段"id”
EN

Stack Overflow用户
提问于 2016-12-15 23:47:13
回答 1查看 752关注 0票数 0

我认为问题在于,我的schema.js文件中的字段称为“id”以外的字段,因为该字段在数据库中称为其他字段。

代码语言:javascript
复制
var classroomType = new GraphQLObjectType({
  name: 'Classroom',
  description: 'A classroom in a school',
  fields: () => ({
    clid: globalIdField('Classroom'),
    course: {
      type: GraphQLString,
      description: 'The course assigned to this classroom.'
    },
    enrollments: {
      type: enrollmentConnection,
      description: 'The students in a classroom',
      args: connectionArgs,
      resolve: (classroom, args) => connectionFromArray(classroom.enrollments.map(getEnrollment), args)
    }
  }),
  interfaces: [nodeInterface],
});

gloablIdField必须被称为id吗?这听起来很奇怪。如果是这样的话,如何将其映射到不称为id的db中的id字段?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-16 00:17:28

如果需要全局id字段为“clid”,可以将id的名称更改为Node接口中的clid,也可以保留id,并在命中DB的解析器方法中为该字段应用别名。

备选案文1如下所示:

代码语言:javascript
复制
interface MyNode {
  clid: ID!
}

type Classroom implements MyNode {
    clid: ID!
    ...
}

选项2

graphql-继电器公开的'globalIdField‘函数接受一个idFetcher作为第二个参数。您可以将其更改为:

代码语言:javascript
复制
id: globalIdField('Classroom', (obj, context, info) => obj.clid)

然后,您还需要在您的突变解析器中将id字段化名为clid。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41175180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档