You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复Gatsby中Link组件URL显示undefined的错误?

解决Gatsby Link组件中slug显示undefined的问题

以下是几个排查和解决的关键点:

  • 检查GraphQL查询是否包含slug字段
    你提供的代码里没有包含页面的GraphQL查询部分,这大概率是问题核心。如果查询时没有请求frontmatter.slug,data对象里自然不会有这个值,导致拼接URL时出现undefined。

    请确保你的查询语句包含slug,示例如下:

    export const query = graphql`
      query BlogPostsQuery {
        allMdx {
          nodes {
            id
            frontmatter {
              title
              date
              slug # 必须添加这个字段
            }
          }
        }
      }
    `
    

    可以通过访问localhost:8000/___graphql打开GraphiQL工具,测试这个查询,确认返回的nodes数组中每个对象的frontmatter里都有slug值。

  • 验证MDX文件的frontmatter格式
    检查你所有的MDX博客文章,确保frontmatter里正确定义了slug字段,且拼写无误,示例格式:

    ---
    title: "我的第一篇博客"
    date: "2024-05-20"
    slug: "my-first-blog-post"
    ---
    

    注意不要把字段名写错(比如写成slu或者url),大小写也要保持一致。

  • 确认Gatsby插件配置
    如果你使用gatsby-plugin-mdx,确保插件配置没有过滤掉slug字段。默认配置下插件会自动解析所有frontmatter字段,但如果有自定义的gatsby-node.js或者插件配置,检查是否在处理过程中遗漏了slug的传递。

内容的提问来源于stack exchange,提问作者jimbojuicebox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 20:43:09