Я пытаюсь отобразить фоновое изображение с помощью плагина gatsby-background-image . Мой код возвращает "TypeError: Невозможно прочитать свойство 'acf' undefined".
Я пытался изменить свой запрос во всех видах вариаций, но не могу понять, как получить фоновое изображение в отобразить. Я думаю, что проблема может быть связана с тем, что каждая страница содержит это конкретное поле ACF. Некоторые возвращают нуль (те, которые я еще не использовал), а остальные возвращают изображение. Может быть, мне нужно добавить некоторые условные логики c, чтобы обрабатывать, когда это конкретное поле пусто?
import React from 'react'
import Layout from '../components/layout'
import { graphql } from "gatsby"
import BackgroundImage from 'gatsby-background-image';
const IndexPage = (props) => (
<Layout >
<BackgroundImage
className="masthead"
fluid={props.data.allWordpressPage.edges.node.acf.banner.localFile.childImageSharp.fluid}
fadeIn
>
<div className="black-overlay">
<div className="content-box">
<h1>This is where my h1 tag goes</h1>
<h2>This is my sub head</h2>
</div>
</div>
</BackgroundImage>
</Layout >
)
export default IndexPage
export const query = graphql`
query {
allWordpressPage {
edges {
node {
acf {
banner {
localFile {
childImageSharp {
fluid(maxWidth: 1800) {
...GatsbyImageSharpFluid
}
}
}
}
}
}
}
}
}
`;
Вот что возвращает мой запрос в GraphQL) Я отредактировал длинный URL из tracedSVG и Base64 out):
{
"data": {
"allWordpressPage": {
"edges": [
{
"node": {
"acf": null
}
},
{
"node": {
"acf": {
"banner": {
"localFile": {
"childImageSharp": {
"fluid": {
"base64": "data:image/jpeg;base64",
"tracedSVG": "data:image/svg+xml",
"srcWebp": "/static/beb79c2e06df840f0e0578a05fb731fa/685a2/tyler-nix-LH6GBACnq5A-unsplash-scaled.webp",
"srcSetWebp": "/static/beb79c2e06df840f0e0578a05fb731fa/b8a88/tyler-nix-LH6GBACnq5A-unsplash-scaled.webp 450w,\n/static/beb79c2e06df840f0e0578a05fb731fa/210c1/tyler-nix-LH6GBACnq5A-unsplash-scaled.webp 900w,\n/static/beb79c2e06df840f0e0578a05fb731fa/685a2/tyler-nix-LH6GBACnq5A-unsplash-scaled.webp 1800w,\n/static/beb79c2e06df840f0e0578a05fb731fa/ab8d3/tyler-nix-LH6GBACnq5A-unsplash-scaled.webp 2560w",
"originalImg": "/static/beb79c2e06df840f0e0578a05fb731fa/4a461/tyler-nix-LH6GBACnq5A-unsplash-scaled.jpg",
"originalName": "tyler-nix-LH6GBACnq5A-unsplash-scaled.jpg",
"presentationWidth": 1800,
"presentationHeight": 1200
}
}
}
}
}
}
},
{
"node": {
"acf": {
"banner": null
}
}
}
]
}
}
}