我有一个像这样的项目结构:
-$PROJECT
--src
---data
----projects
-----project1
------project.json
------images
-------project1-preview.png
-----project2
------project.json
-------images
...
Run Code Online (Sandbox Code Playgroud)
等等,对于许多项目。我可以查询这些 project.json 文件,当它们被命名为项目的标题时,并且在projects使用allProjectsJsongraphQl的文件夹中时,但是现在它们位于projects. 我只能作为 allProject1Json 等单独查询它们。有没有办法查询 allProjectsJson 以便我获得所有 project.json 文件?
我可以通过查询allFilejson 文件的过滤器来找到我的项目文件,但是,这些文件未转换为 json,因此我无法访问这些元素。
在我的 gatsby-config 文件中,我将 src/data 作为文件源导入。
小智 5
从我在https://github.com/gatsbyjs/gatsby/issues/20734 的回答:
啊,我明白你的意思了 :) 幸运的是gatsby-transformer-json有一个插件选项可以帮助你摆脱困境!
这是typeName选项。您应该能够检查每个 JSON 节点上的字段,并将其用作类型名称。像这样的东西:
{
resolve: `gatsby-transformer-json`,
options: {
typeName: ({ node, object, isArray }) =>
object.project ? `Project` : `Json`,
},
},
Run Code Online (Sandbox Code Playgroud)
这样,project定义字段的任何内容都将显示为allProject { ... },而任何其他 json 文件将显示为allJson { ... }
{
allProject {
nodes {
project
}
}
}
Run Code Online (Sandbox Code Playgroud)
{
"data": {
"allProject": {
"nodes": [
{
"project": "project1"
},
{
"project": "project2"
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
805 次 |
| 最近记录: |