Je suis capable d'obtenir les données d'image dans graphiql mais que vous ne pouvez pas vous rendre à travailler dans le composant. S'il vous plaît laissez-moi savoir où je vais mal.
3 Réponses :
Habituellement, vous auriez une requête nommée de manière unique sur chaque composant de page, sinon je ne sais pas si Gatsby sait de l'extraire et de passer sa valeur résolue comme le transfert de données ou non.
import React from "react"; import { graphql } from "gatsby"; import Img from "gatsby-image" export default function Landing({ data }) { console.log(data) return ( <section id="landing" className="d-flex flex-column justify-content-around"> </section > ) } export const query = graphql` query LandingQuery { img: file(relativePath: {eq: "landing-women.jpg"}){ childImageSharp{ fluid{ src } } } } `;
Essayé mais n'a pas travaillé .. Cependant, il semble fonctionner avec usesticQuery. Lorsque vous l'utilisez dans un composant différent, puis importer
Avez-vous des erreurs dans le terminal avec la solution ci-dessus?
Je pense que cela a à voir avec votre composant n'est pas dans le dossier "pages" et ne pas être une page. Est-ce exact? L'utilisation des requêtes de la page dans les composants entraînera l'indéfinie des données. P>
dans gatsby vous avez Page de page (pour les pages) et Queries statiques (pour composants) P>
Mais cela fonctionne lorsqu'il est importé comme composant séparé qui n'est pas non plus dans le dossier de pages?
Cela fonctionne avec une requête statique dans un composant. Les requêtes de la page GRAPHQL ne fonctionneront pas dans les composants. Dans votre solution, vous avez utilisé une requête statique.
Eh bien, je ne connais pas la raison exacte de celui-ci, mais j'ai résolu le problème en créant un composant séparé pour la requête d'image, puis l'importatez-la si nécessaire.
import React from "react"; import { useStaticQuery, graphql } from "gatsby" import Img from "gatsby-image"; const Image = () => { const data = useStaticQuery(graphql` query { img: file(relativePath: {eq: "landing-women.jpg"}){ childImageSharp{ fluid{ ...GatsbyImageSharpFluid_tracedSVG } } } } `) return <Img className="img-fluid order-0 order-md-1 col-12 col-md-7" fluid= {data.img.childImageSharp.fluid} /> } export default Image
Avez-vous besoin de mettre le mot requis avant vos supports d'ouverture dans
graphql code> string?
Essayé celui-là aussi mais ça n'a pas fonctionné
Avez-vous résolu ce problème?