Javascript 在gatsby节点中创建自定义架构后,ChildImageSharp为空

Javascript 在gatsby节点中创建自定义架构后,ChildImageSharp为空,javascript,graphql,gatsby,Javascript,Graphql,Gatsby,我正在与盖茨比和斯特拉皮建立一个网站,我面临一个无法解决的问题 这是我的问题: exports.sourceNodes = ({ actions }) => { const { createTypes } = actions const typeDefs = ` type allStrapiBanner implements Node { banner: childImageSharp } type childImageSharp{

我正在与盖茨比和斯特拉皮建立一个网站,我面临一个无法解决的问题

这是我的问题:

exports.sourceNodes = ({ actions }) => {
  const { createTypes } = actions
  const typeDefs = `
    type allStrapiBanner implements Node {
      banner: childImageSharp
    }
    type childImageSharp{
      childImageSharp: fixed
    }
    type fixed{
      fixed(width: Int): src
      }
    type src{
      src: String
    }
  `
  createTypes(typeDefs)
}
我制作了一个自定义graphQL模式,以避免在客户机在CMS中留下空字段时构建失败。但由于我在主页横幅上这样做,childImageSharp是空的

我假设我的自定义graphql模式做错了,但我不知道在哪里

这是我的档案:

Homepage.js

const IndexPage = ({ data }) => {
  return (
    <Layout>
      {data.allStrapiBanner.edges[0].node.banner.childImageSharp.fixed &&
        <Img
          fixed={data.allStrapiBanner.edges[0].node.banner.childImageSharp.fixed}
          imgStyle={{ position: "static" }}
        />
      }
    </Layout>
  )
}

export default IndexPage


export const pageQuery = graphql`
    allStrapiBanner {
      edges {
        node {
          banner {
            childImageSharp {
              fixed(width: 800){
                src
              }
            }
          }
        }
      }
    }
  }
`
现在,当我不将图像上传到我的横幅字段,但当我上传图像childImageSharp时,gatsby build没有错误

我已经读过文件()了,但我没法让它工作。 如果有人能告诉我如何正确创建childImageSharp的自定义模式


提前非常感谢您

已解决

经过数小时的残酷努力,我终于解决了我的问题。我不敢相信事情这么简单:

我只是将gastby-node.js中的模式更改为

exports.sourceNodes = ({ actions }) => {
  const { createTypes } = actions
  const typeDefs = `
    type allStrapiBanner implements Node {
      banner: File
    }
  `
  createTypes(typeDefs)
}
而且它起作用了