Gatsby 静态查询上的 MarkdownRemarkFilterInput 类型未定义错误字段“frontmatter”
Posted
技术标签:
【中文标题】Gatsby 静态查询上的 MarkdownRemarkFilterInput 类型未定义错误字段“frontmatter”【英文标题】:Error Field "frontmatter" is not defined by type MarkdownRemarkFilterInput on Gatsby Static Query 【发布时间】:2020-09-10 23:15:12 【问题描述】:在我的 Index.tsx
页面中,我尝试执行 GraphQL 查询,但我在浏览器上收到此错误。
Field "frontmatter" is not defined by type MarkdownRemarkFilterInput.
我也在浏览器的控制台上收到此错误
这是Index.tsx
页面的代码
import React from 'react';
import Link, graphql from 'gatsby';
// import Intro from '../components/Intro';
import Head from '../components/Head';
import Layout from '../components/Layout';
import Bio from '../components/bio';
interface IndexProps
readonly data: PageQueryData;
const Index: React.FC<IndexProps> = (data) =>
const siteTitle = data.site.siteMetadata.title;
const posts = data.allMarkdownRemark.edges;
return (
<Layout title=siteTitle>
<Head
title="Home"
keywords=[
`blog`,
`gatsby`,
`typescript`,
`javascript`,
`portfolio`,
`react`
]
/>
<Bio />
<article>
<div className=`page-content`>
posts.map((node) =>
const title = node.frontmatter.title || node.fields.slug;
return (
<div key=node.fields.slug>
<h3>
<Link to=node.fields.slug>title</Link>
</h3>
<small>node.frontmatter.date</small>
<p dangerouslySetInnerhtml=__html: node.excerpt />
</div>
);
)
</div>
</article>
</Layout>
);
;
interface PageQueryData
site:
siteMetadata:
title: string;
;
;
allMarkdownRemark:
edges:
node:
excerpt: string;
fields:
slug: string;
;
frontmatter:
date: string;
title: string;
;
;
[];
;
export const pageQuery = graphql`
query
site
siteMetadata
title
allMarkdownRemark(
filter: frontmatter: published: ne: false
sort: fields: [frontmatter___date], order: DESC
)
edges
node
excerpt
fields
slug
frontmatter
date(formatString: "MMMM DD, YYYY")
title
`;
export default Index;
我不知道我是否在 allMarkdownRemark
部分执行了错误的查询,或者我是否可能以错误的方式访问数据。有人可以提示我可能出了什么问题吗?
谢谢!
【问题讨论】:
尝试通过单击三角形来展开第一个错误(++在控制台错误消息中++)。有时,答案就隐藏在那里。祝你好运 查询是否在 GraphiQL 中运行?在localhost:8000/___graphql
试用。我认为错误出在您的 GraphQL 排序中,sort: fields: [frontmatter___date], order: DESC
。似乎frontmatter___date
不是MarkdownRemarkFieldsEnum
的一部分
【参考方案1】:
问题是我还没有添加任何帖子。一旦我创建了一个查询,问题就消失了。
【讨论】:
以上是关于Gatsby 静态查询上的 MarkdownRemarkFilterInput 类型未定义错误字段“frontmatter”的主要内容,如果未能解决你的问题,请参考以下文章
Gatsby 中单个 JSON 对象的 GraphQL 查询
Gatsby Remark 插件:创建的节点对 GraphIQL 可见,但在 Gatsby 页面上的查询返回 null
通过 github.io 渲染静态网页不起作用 - 对于使用 gatsby 创建的网站/从 github repo 托管在 netlify 上的网站