Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 盖茨比Mdx frontmatter是空的_Javascript_Reactjs_Gatsby_Mdxjs - Fatal编程技术网

Javascript 盖茨比Mdx frontmatter是空的

Javascript 盖茨比Mdx frontmatter是空的,javascript,reactjs,gatsby,mdxjs,Javascript,Reactjs,Gatsby,Mdxjs,我有一个定义了frontmatter的mdx gatsby页面 --- title: About Me path: /about description: Some information about me. --- # About Me [Twitter](https://twitter.com/RainFire336) 我在gatsby config.js中配置了一个默认布局: { 解析:“盖茨比插件mdx”, 选项:{ 默认布局:{ 默认值:require.resolve(“./src

我有一个定义了frontmatter的mdx gatsby页面

---
title: About Me
path: /about
description: Some information about me.
---

# About Me
[Twitter](https://twitter.com/RainFire336)
我在
gatsby config.js
中配置了一个默认布局:

{
解析:“盖茨比插件mdx”,
选项:{
默认布局:{
默认值:require.resolve(“./src/components/page layout.tsx”)
},
盖茨比马克插件:[
“盖茨比评论图像”,
{
解决方案:“盖茨比评论prismjs”,
选项:{
showlinenumber:正确,
提示:{
用户:“雨”,
},
},
},
],
},
}
布局尝试使用其道具访问frontmatter:

import React from 'react';
import { Layout } from './layout';
import { Card } from './card';
import { Metadata } from './metadata';

interface Props {
  children: React.ReactNode;
  uri: string;
  pageContext: { frontmatter: any };
}

export default function (p: Props) {
  const { children, uri, pageContext } = p;
  return (
    <Layout>
      <Metadata {...pageContext.frontmatter} url={uri} />
      <Card style={{ width: '50%' }}>{children}</Card>
    </Layout>
  );
}
从“React”导入React;
从“/Layout”导入{Layout};
从“./Card”导入{Card};
从“/Metadata”导入{Metadata};
界面道具{
子节点:React.ReactNode;
uri:字符串;
pageContext:{frontmatter:any};
}
导出默认功能(p:道具){
const{children,uri,pageContext}=p;
返回(
{儿童}
);
}
问题是frontmatter始终是一个空对象:
所以形成一个问题。如何访问我的frontmatter?

外人不可能在没有代理的情况下调试您的代码

调试GraphQL的最佳方法是使用浏览器的GraphiQL界面

将用数据填充
pageContext
的graphQL查询粘贴到GraphiQL编辑器的查询窗口
http://localhost:8000/___graphql

frontmatter是否包含数据

  • 如果没有,则说明GraphQL查询有问题,或者无法查询数据
  • 如果是这样的话,您很可能会在传递数据或对其进行分解时出错。使用
    console.log(pageContext)
    检查数据对象

    • 我也遇到了这个问题。我不得不重新运行
      gatsby develope
      ,以使frontmatter显示在我的
      pageContext


      我还发现,当我更新frontmatter时,它不会自动更新,我需要重新启动
      gatsby develope
      命令才能显示它。

      也有同样的问题。重新运行《盖茨比开发》对我来说不起作用

      什么有效:

      每当我在前面添加一个新的键/值时,我都需要在重新运行
      Gatsby develope
      之前删除Gatsby应用程序根目录下的
      .cache
      文件夹。然后,我可以通过布局中的
      pageContext.frontmatter
      访问正确的frontmatter

      还值得注意的是,frontmatter应该先于MDX文件中的任何导入。像这样:

      ---
      福:“酒吧”
      ---
      导入“./something.js”
      #我伟大的MDX
      
      TLDR:


      删除盖茨比项目根目录中的
      .cache
      文件夹。

      没有查询。根据,
      props.pageContext.frontmatter
      应该自动填充。我不知道为什么,但它随机开始工作。面临同样的问题。没有一个答案有效。