我是盖茨比的新手,一直在努力解决这个问题。我有一个组件,它遍历 .json 文件中的多个节点并显示图像和文本。
理想情况下,我想将来自页面组件上的 GraphQL 查询的数据传递给组件(称为 HeadlineAcross),然后让它在页面上显示某些元素。到目前为止,这是我的组件中的内容:
const HeadlineAcross = ( { headlineTitle } ) => {
const data = useStaticQuery(graphql`
query {
allfeaturesJson{
edges {
node {
img {
childImageSharp {
gatsbyImageData
}
}
description
}
}
}
}
`)
function getDetail(data) {
const dataArray = []
data.allfeaturesJson.edges.forEach((item) => {
dataArray.push(
<HeadlineAcrossRow>
<HeadlineAcrossSingleImage>
<HeadlineAcrossImage image={getImage(item.node.img.childImageSharp.gatsbyImageData)}/>
</HeadlineAcrossSingleImage>
<HeadlineAcrossText>
<HeadlineAcrossHeading>{item.node.heading}</HeadlineAcrossHeading>
<p>{item.node.description}</p>
</HeadlineAcrossText>
</HeadlineAcrossRow>
)
})
return dataArray
}
// return the elements here
}
我希望能够将此组件作为道具传递数据查询的结果,所以 {headlineTitle, data} 然后对其进行迭代。这是因为我可以以相同的方式格式化多个 Json 文件并轻松使用相同的组件。但要做到这一点,我需要引用如上所示的“allfeaturesJson”。我该怎么做呢?