首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >接口字段[字段].contentful_id期望类型字符串!但是[another_field].contentful_id是类型字符串。与盖茨比v3 & Contentful

接口字段[字段].contentful_id期望类型字符串!但是[another_field].contentful_id是类型字符串。与盖茨比v3 & Contentful
EN

Stack Overflow用户
提问于 2021-09-18 21:20:10
回答 2查看 250关注 0票数 0

从盖茨比开始并使用https://github.com/ryanwiemer/gatsby-starter-gcn。刚刚更新到v3和最新的gatsby插件和Just:

错误#11321插件 "gatsby-node.js“在运行createPages生命周期时抛出了一个错误: 接口字段ContentfulReference.contentful_id期望输入字符串!但是ContentfulAsset.contentful_id是类型字符串。

gatsby-node.js中是:

代码语言:javascript
复制
createTypes(`
  interface ContentfulReference {
    contentful_id: String!
    id: ID!
  }
`);
  createTypes(schema.buildObjectType({
    name: `ContentfulAsset`,
    fields: {
      contentful_id: {
        type: `String!`
      },
      id: {
        type: `ID!`
      }
    },
    interfaces: [`ContentfulReference`, `Node`]
  }));

这也发生在其他几个方面(所有这些都有contentful_id: String!):

接口字段ContentfulReference.contentful_id期望输入字符串!但是ContentfulPage.contentful_id是类型字符串。 接口字段ContentfulEntry.contentful_id期望输入字符串!但是ContentfulPage.contentful_id是类型字符串。 接口字段ContentfulEntry.node_locale期望输入字符串!但是ContentfulPage.node_locale是类型字符串。 接口字段ContentfulReference.contentful_id期望输入字符串!但是ContentfulPost.contentful_id是类型字符串。 接口字段ContentfulEntry.contentful_id期望输入字符串!但是ContentfulPost.contentful_id是类型字符串。 接口字段ContentfulEntry.node_locale期望输入字符串!但是ContentfulPost.node_locale是类型字符串。 接口字段ContentfulReference.contentful_id期望输入字符串!但是ContentfulTag.contentful_id是类型字符串。 接口字段ContentfulEntry.contentful_id期望输入字符串!但是ContentfulTag.contentful_id是类型字符串。 接口字段ContentfulEntry.node_locale期望输入字符串!但是ContentfulTag.node_locale是类型字符串。

EN

回答 2

Stack Overflow用户

发布于 2021-09-20 04:27:18

根据:

接口字段ContentfulReference.contentful_id期望输入字符串!但是ContentfulAsset.contentful_id是类型字符串。

由于! (空/非空),在某些字段中,您的contentful_id似乎是null,因此它破坏了您定义的接口的契约。我不知道是什么引起了您的问题,因为考虑到所提供的数据,很难猜测,但是我会尝试删除字段的空性(使用!,您正在告诉接口contentful_id永远是不可空的),或者检查所有的引用以检测哪个是null

代码语言:javascript
复制
  interface ContentfulReference {
    contentful_id: String
    id: ID!
  }
票数 0
EN

Stack Overflow用户

发布于 2021-09-22 16:58:09

我也遇到了同样的问题。删除src/gatsby/schema/schema.gql并运行npm run cleannpm run develop应该重新生成架构,并允许站点再次工作。

以上回答这个问题的评论向我介绍了这个问题:存储在src/gatsby/schema/schema.gql中的来自gatsby-plugin-schema-snapshot的模式快照已经过时,在以后版本的API中contentful_id很可能被标记为可为空。

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

https://stackoverflow.com/questions/69238522

复制
相关文章

相似问题

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