因此,我在 React 中创建了一个可重用的 hero 部分,并从数据文件中检索图像,因此更新新图像所需要做的就是更新我的数据文件。我正在尝试将此组件转换为 Gatsby,但我不确定如何使用我的数据文件实现他们的图像插件。
我的图像组件使用此代码 rn 返回我的所有图像
const Image = () => {
const data = useStaticQuery(graphql`
query {
allImageSharp {
edges {
node {
id
fluid(maxWidth: 200, maxHeight: 200) {
...GatsbyImageSharpFluid
}
}
}
}
}
`)
return (
<>
{data.allImageSharp.edges.map(edge => (
<Img fluid={edge.node.fluid} />
))}
</>
)
}
下面是我试图转换为使用 gatsby 的 React 代码
我的数据文件只是一个链接我要使用的图像的对象
export const heroSectionOne = {
img: require('../../images/profile.jpg'),
alt: 'Image',
start: 'true'
};
export const heroSectionTwo = {
img: require('../../images/house.jpg'),
alt: 'Image',
start: 'true'
};
现在,我只是传入组件上的道具
<ImgWrapper start={start}>
<Img src={img} alt={alt} />
</ImgWrapper>
然后在我的主页组件中,我会重用组件,但是切换使用哪个数据文件,所以我得到了不同的图像
<InfoSection {...heroSectionOne} />
<InfoSection {...heroSectionTwo} />
所以现在,我的组件将显示 img'../../images/profile.jpg'
并且第二部分将显示 house.jpg 图片,因为我在我的数据文件中进行了硬编码,但是对于 Gatsby,我将如何使用他们的图像组件复制相同的方法?
我将如何在 gatsby 中编写我的图像组件,以便能够在我的应用程序中的任何位置传递图像组件,然后添加我想要在最终添加到的组件中使用的任何图像?
我只看过教程,展示了如何将特定图像添加到您的查询或如何一次显示文件夹中的所有图像,但还没有看到任何关于通过数据文件传递它的内容