我知道关于这个问题有很多问题,但老实说我无法理解任何答案。
我的理解是一切都发生在构建时,我的代码支持这一点。
我想要的是访问一个与我的数据中的字段“slug”同名的文件夹。我在 gatsby-node.js 文件中创建页面。
这是我的代码:
gatsby-node.js
exports.createPages = ({ actions }) => {
const data = require("./src/data/data.json")
const { createPage } = actions
data.forEach(data => {
createPage({
path: `/${data.slug}/`,
component: require.resolve('./src/templates/listing-template.js'),
context:{data},
})
})
}
Run Code Online (Sandbox Code Playgroud)
我在上下文中发送数据。
现在在我的组件中,我希望在查询中使用该数据来获取该页面的特定文件夹:
列表包含数据,并在过滤器中:{ relativeDirectory: { eq:我想使用它;
我试过: ${listing.slug} 但 graphql 不允许它在 eq 中。
我怎样才能做到这一点?
该查询仅从指定文件夹中获取所有文件
const Listing2 = ({listing}) => {
const { casape } = useStaticQuery(
graphql`
query {
allFile(
sort: { fields: name, order: DESC }
filter: { relativeDirectory: …Run Code Online (Sandbox Code Playgroud) 我正在制作一个 Gatsby 静态网站,但在使用 GraphQL 时遇到了问题。
我正在尝试使用 GraphQL 查询文件夹中的所有图像。我的数据有路径:
"images" : "./relimages/vila-franceza",
"cardimages" : "./relimages/main-page-card-images/vila-franceza.jpg",
Run Code Online (Sandbox Code Playgroud)
获取cardimages图像工作正常。我可以随心所欲地用盖茨比图像来操纵它。
但是当我查询图像(这是一个文件夹)时,我只得到该文件夹的路径。
这是我的查询:
query flagquery {
allDataRoJson {
edges {
node {
images
cardimages {
id
childImageSharp {
fluid {
originalImg
}
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在我的查询中,图像以字符串形式返回。我怎样才能让它可以通过 graphQL 查询,以获取具有 childImageSharp 属性的图像数组,就像我指定一个图像的情况一样。
这是 GraphiQL 中查询的输出
{
"data": {
"allDataRoJson": {
"edges": [
{
"node": {
"images": "./relimages/vila-franceza",
"cardimages": {
"id": "2a1fca39-6192-5e09-b913-43c5bf48966f",
"childImageSharp": {
"fluid": {
"originalImg": "/static/30337f0e47a254b68d443be671031647/0a89a/vila-franceza.jpg"
}
}
}
} …Run Code Online (Sandbox Code Playgroud)