带有 Directus 数据的 Gatsby 4 动态路由似乎是不可能的

Gatsby 4 dynamic routes with Directus data seems imposible

我正在尝试创建动态路由。假设我们正在建立一个博客。

我从 Directus 获得的 graphql 数据如下所示:

{
  Directus {
    Posts {
      id
      slug
      Title
      Body
    }
  }
}

这似乎是个问题。无论我如何尝试创建路由,Gatsby 都坚持认为数据结构应该包含节点而不仅仅是数组。我尝试使用“文件系统路由 API”,由于缺少节点而引发错误,如果我尝试在 gatsby-node.js.[=11 中使用“createPages”定义,也会发生同样的事情=]

非常感谢任何帮助或建议...

我成功了...解决方案比我在 google 上找到的任何指南都简单,所以它来了,如果其他人遇到同样的情况。

在项目根目录中的 gatsby-node.js 文件中使用旧的 cratePage 方法。我使用了这个非常简单的代码:

const path = require("path")

exports.createPages = async ({ graphql, actions }) => {
  const { data } = await graphql(`
    query Projects {
      Directus {
        Posts {
          slug
        }
      }
    }
  `)

  data.Directus.Posts.forEach(post => {
    actions.createPage({
      path: "/blog/" + post.slug,
      component: path.resolve("./src/components/blog.js"),
      context: { slug: post.slug },
    })
  })
}

这里是 link 有用的信息:https://www.youtube.com/watch?v=L32Vx_bEZhA