1

在 Gatsby 中,我的节点的值包含数组(来自 Airtable):

"edges": [
        {
          "node": {
            "data": {
              "Name": "Simon",
              "Projects": [
                "Mainsite", "Backend"
              ],
              "Locations": [
                "UK", "USA"
              ]
            }
          }
        },
...

当我使用 Gatsby 的文件系统路由 API创建动态页面(例如{airtable.data__Projects}.js)时,会为每个节点中使用的每个数组创建页面,例如/projects/mainsite-backend/.

如何让每个节点的每个数组中的每个项目都有自己的页面,例如/projects/mainsite/projects/backend

4

1 回答 1

0

__我认为您使用的双下划线 ( ) 表示法{airtable.data__Projects}.js创建了一条不受欢迎的路线。根据文档:

使用__(双下划线)表示您要访问节点上的嵌套字段。您可以根据需要嵌套尽可能深,例如 src/pages/products/{Product.fields__date__createdAt}.js生成以下查询:

allProduct {
  nodes {
    id # Gatsby always queries for id
    fields {
      date {
        createdAt
      }
    }
  }
}

就您而言,我认为您正在尝试做/projects/{airtable.data.Projects}.js.

或者(取决于您的规范)您可以Projects使用name字段(将保存您的MainsiteBackend)在内部创建一个嵌套的 JSON 结构,并适合喜欢src/pages/projects/{Project.name}.js

于 2021-08-12T16:42:48.470 回答