Прохождение Эндрю Мида по обучению гэтсби . Моя содержательная модель настроена с медиа-полем для изображения героя. Форматированный текст и текстовые поля работают нормально. На моей главной странице я хочу, чтобы каждое сообщение отображалось с миниатюрой изображения героя. Мой запрос к GraphQL выглядит следующим образом, и вы можете видеть heroImage , который прекрасно работает на игровой площадке graphql:
const data = useStaticQuery(graphql`
query {
allContentfulWork(sort: { fields: publishedDate, order: DESC }) {
edges {
node {
title
slug
publishedDate(formatString: "MMMM Do, YYYY")
heroImage {
file {
url
}
}
}
}
}
}
`)
^^ Это работает на игровой площадке GraphQL. И ниже в индексе. js Я возвращаюсь:
return (
<Layout>
<ul className={workStyles.indexPage}>
{data.allContentfulWork.edges.map(edge => {
return (
<li>
<Link to={`/work/${edge.node.slug}`}>
<h3>{edge.node.title}</h3>
{edge.node.publishedDate}
<img src={edge.node.heroImage.file.url} />
</Link>
</li>
)
})}
</ul>
</Layout>
)
проблема заключается в том, что {edge.node.heroImage.file.url} возвращает ошибку, TypeError: Cannot read property 'file' of null
.
как мне вставить это изображение?