【发布时间】:2022-01-05 11:05:49
【问题描述】:
所以,我有一个 JSON 文件,其中包含我要提取到我的 React 项目中的信息。其中一个字段是图像关键字。我想用它来调用可以转储促销图像的“显示”文件夹中的图像。
thisYear.json
{
"title": "Rope",
"author": "Patrick Hamilton",
"image": "rope",
},{
"title": "I Hate Hamlet",
"author": "Paul Rudnick",
"image": "iHateHamlet",
}
]
我做了一个查询,将图像从“显示”文件夹中抓取到 jsx 文件中
{
allFile(filter: {relativeDirectory: {eq: "shows"}}) {
edges {
node {
id
name
childImageSharp {
gatsbyImageData(placeholder: DOMINANT_COLOR)
}
}
}
}
}
我尝试编写一些比较名称属性的函数,但我似乎无法编写任何有效的方法。我没有抓住这里的东西,我只是不知道它是什么。
在我通过我的 JSON 文件进行映射并与作为查询数据的 imageData 进行比较时,传入了 showImage。控制台日志显示正在比较的正确名称,所以我知道它正在通过。它只是没有将该数据传递给 GatsbyImage。
function findImage(showImage) {
imageData.map((image) => {
console.log(image.node.name + ' vs ' + showImage)
if (image.node.name == showImage) {
/**if the image name == our show image name, we return that image data */
return data.file.childImageSharp.gatsbyImageData
}
})
return
}
如果有帮助,我的 git 存储库就在这里: https://github.com/TheComeBackGuy/TKD-Gatsby
【问题讨论】:
标签: javascript reactjs json graphiql