У меня возникли проблемы с отображением URL-адресов изображений моей галереи в поле src. Результатом является [объект объект]. Любые указатели на то, где я иду, были бы замечательными!
код -
<div className = "image-grid">
{data.home.galleryImage.map((url, index) => (
<div className = "image-item" key = {`${index}-cl`}>
<img src = {url} alt = {"no alt :("} />
</div>
))
}
</div>
запрос графql -
export const query = graphql`
query GetSingleHome($slug: String) {
home: strapiHomes(slug: { eq: $slug }) {
galleryImage {
url
}
}
}
`
Ваш элемент url
— это повторяемый объект, а не сам url
. Измените его на:
<div className = "image-grid">
{data.home.galleryImage.map((image, index) => (
<div className = "image-item" key = {`${index}-cl`}>
<img src = {image.url} alt = {"no alt :("} />
</div>
))
}
</div>
Теперь ваш итерируемый объект — это image
(что имеет больше смысла), который содержит массив galleryImage
, поэтому для доступа к вложенному свойству вам нужно получить image.url
.
Вы можете сохранить свой предыдущий подход, используя разрушение при объявлении итерируемой переменной:
<div className = "image-grid">
{data.home.galleryImage.map(({url}) => (
<div className = "image-item" key = {`${url}-cl`}>
<img src = {url} alt = {"no alt :("} />
</div>
))
}
</div>
Для получения дополнительной информации ознакомьтесь с документацией карты.