您的GraphQL查询中存在错误:无法查询类型为“ StrapiPropiedadesImagen”的字段“ childImageSharp”

时间:2020-05-02 23:19:43

标签: javascript reactjs gatsby

当您想通过图形查询将图像带给我时,我会收到错误消息

无法查询类型为“ StrapiPropiedadesImagen”的字段“ childImageSharp”。

她不会让我带她去的。 这是我用来给我带来图像的查询,其他的是描述,id,wc,停车,价格,这些都毫无问题地带给我。 但是尝试带给我图像时我找不到问题。

const usePropiedades = () => {const datos = useStaticQuery(graphql`
query {
  allStrapiPropiedades {
    nodes {
      nombre
      descripcion
      id
      wc
      precio
      estacionamiento
      habitaciones
      categorias {
        nombre
      }
      agentes {
        nombre
        Telefono
        email
      }
      imagen {
        sharp: childImageSharp {
          fluid(maxWidth: 600, maxHeight: 400) {
            ...GatsbyImageSharpFluid
          }
        }
      }        
    }
  }
}

`

我想在这里显示它:

const PropiedadPreview = ({propiedad}) => {
const { nombre, descripcion, imagen, wc, estacionamiento, habitaciones, precio } = propiedad;
return (<Card> 
   <Image
    fluid={imagen.sharp.fluid} // Here I try to show
   />
   <Contenido>
   <h3>{nombre}</h3>
       <p className="precio">$ {precio} </p>

       <Iconos
       wc={wc}
       estacionamiento={estacionamiento}
       habitaciones={habitaciones}
       />
   </Contenido></Card>
);}

graphiql

3 个答案:

答案 0 :(得分:0)

您是否尝试过从查询中删除“尖锐”?就是这样:

imagen {
    childImageSharp {
      fluid(maxWidth: 600, maxHeight: 400) {
        ...GatsbyImageSharpFluid
      }
    }
  }        

答案 1 :(得分:0)

您的 childImageSharp 正在返回一个 null 值,您甚至无法在 GraphQL 游乐场 (localhost:8000/___graphql) 中查询它,因此在您的组件中,您的代码已损坏。

   <Image
    fluid={imagen.sharp.fluid} // Here I try to show
   />

imagen 永远不会获取显示 fluid 资产的数据,因为查询是 null

答案很简单,您需要修复您的图像路径和文件系统,以允许 Gatsby(及其转换器)从您的 Strapi 图像创建可查询的节点,除非您不修复它,否则您将无法使用gatsby-image 使用这些资产。

答案 2 :(得分:-1)

你必须把它放在钩子文件中:

  imagen {
      sharp: childImageSharp {
           fluid( maxWidth: 600, maxHeight: 400 ){
               ...GatsbyImageSharpFluid_withWebp
           }
       }
  }

此外,如果您遇到相同的错误,您应该在图像 'propiedades' stripi type builder 中禁用多个图像