获取 Gatsby 中所有现有页面路由的数组

3

我在 Gatsby 中制作 404 页面,希望在用户访问不存在的页面时,能够给出一个类似路径名的建议。如何获取网站中所有现有页面的数组?

1个回答

5

Gatsby会将每个页面的信息暴露出来(无论是通过pages文件夹还是createPage API),作为名为allSitePage的GraphQL字段。我倾向于在大多数项目中创建一个类似这样的钩子,以便可以轻松地获取这些信息:

import { graphql, useStaticQuery } from "gatsby"

const useInternalPaths = () => {
  const {
    pages: { nodes },
  } = useStaticQuery(graphql`
    {
      pages: allSitePage {
        nodes {
          path
        }
      }
    }
  `)

  return nodes.map(node => node.path)
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接