首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法在GraphQL架构中嵌套类型

无法在GraphQL架构中嵌套类型
EN

Stack Overflow用户
提问于 2017-05-28 21:10:51
回答 1查看 506关注 0票数 3

我很难弄清楚为什么我在“页面/页面”上的PageType给出了"PageType是没有定义的“,是否有一种不同的方法来引用它呢?我觉得这可能是一个简单的忽略,以及如何引用其他类型。

代码语言:javascript
运行
复制
const PageType = new GraphQLObjectType({
  name: 'Page',
  fields: {
    _id: { type: new GraphQLNonNull(GraphQLID) },
    title: { type: GraphQLString },
    subtitle: { type: GraphQLString },
    description: { type: GraphQLString },
    page: {
      type: PageType
    }
    pages: {
      type: new GraphQLList(PageType),
    }
  },
});

错误(主要是帮助他人搜索类似的问题):

代码语言:javascript
运行
复制
ReferenceError: PageType is not defined
    at Object.<anonymous> (H:\Coding\Projects\react-starter-kit\build\webpack:\src\data\types\PageType.js:50:1)
    at __webpack_require__ (H:\Coding\Projects\react-starter-kit\build\webpack:\webpack\bootstrap 8ce5b4572987765a465d:19:1)
    at Object.<anonymous> (H:\Coding\Projects\react-starter-kit\build\server.js:731:74)
    at __webpack_require__ (H:\Coding\Projects\react-starter-kit\build\webpack:\webpack\bootstrap 8ce5b4572987765a465d:19:1)
    at Object.<anonymous> (H:\Coding\Projects\react-starter-kit\build\webpack:\src\data\schema.js:1:1)
    at __webpack_require__ (H:\Coding\Projects\react-starter-kit\build\webpack:\webpack\bootstrap 8ce5b4572987765a465d:19:1)
    at Object.<anonymous> (H:\Coding\Projects\react-starter-kit\build\server.js:1098:72)
    at __webpack_require__ (H:\Coding\Projects\react-starter-kit\build\webpack:\webpack\bootstrap 8ce5b4572987765a465d:19:1)
    at Object.<anonymous> (H:\Coding\Projects\react-starter-kit\build\server.js:7455:18)
    at __webpack_require__ (H:\Coding\Projects\react-starter-kit\build\webpack:\webpack\bootstrap 8ce5b4572987765a465d:19:1)
    at H:\Coding\Projects\react-starter-kit\build\webpack:\webpack\bootstrap 8ce5b4572987765a465d:65:1
    at Object.<anonymous> (H:\Coding\Projects\react-starter-kit\build\server.js:71:10)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-28 21:20:01

这个错误非常直接..。在做作业之前,你要尝试引用PageType。同样的错误将发生在一个最小的例子中:

代码语言:javascript
运行
复制
const foo = {
  innerFoo: foo // error: foo is not defined
}

这就是为什么在这些递归情况下常被称为块的函数。

代码语言:javascript
运行
复制
const foo = {
  innerFoo: () => foo
}

foo.innerFoo()被调用时,foo已经定义好了,这将起作用。基于这个原因,GraphQL模式支持将字段创建为函数。

代码语言:javascript
运行
复制
const FooType = new GraphQLObjectType({
  name: 'Foo',
  fields: () => ({ // fields is a "thunk"
    foo: {
      type: FooType
    },
    foos: {
      type: new GraphQLList(FooType),
    }
  }),
})
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44232062

复制
相关文章

相似问题

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