让我们看看。我有一个盖茨比网站,一个歌词网站。每首歌曲都是Markdown文件,其中包含一些前题字段(标题,专辑,作者等)。我对每个作者的页面都有一个GraphQL查询,它会过滤所有歌曲并返回与我传入的作者姓名匹配的歌曲。
我想显示有关每个作者的更多信息,所以我添加了一个authors.json文件,每个文件都有名称,传记和图像,并向我的gatsby配置文件添加了映射,将frontmatter作者映射到作者名称(来自我的json文件)。到目前为止一切顺利。
它在大多数页面上都有效,我只需要将查询从frontmatter {author}更新为frontmatter {author {name}}。
但是作者页面查询不起作用。我在GraphiQL中遇到了麻烦,删除过滤器会使它正确返回所有映射的字段,但是,当然,我需要过滤器。
我还尝试对作者值进行硬编码,因为它通常是由页面上下文提供的,但是它也不起作用。
不知道我要去哪里错了:/
我将添加一些相关的片段:
前题示例:
---
title: Adeus camarada, adeus
author: Contra Mestre Rafael
album: Quando os berimbaus se encontram
tags: ["quadra"]
date: 2019-02-02
---
作者条目(authors json是其中的一个数组):
{
"name": "Contra Mestre Rafael",
"bio": "Placeholder bio.",
"image": "/images/authors/cm-rafael.jpg"
}
查询无效:
query($author: String) {
allMarkdownRemark(
limit: 2000
sort: { fields: [frontmatter___date], order: DESC }
filter: { frontmatter: { author: { eq: $author } } }
) {
totalCount
edges {
node {
fields {
slug
}
frontmatter {
author {
name
bio
image
}
title
}
}
}
}
}
目前allMarkdownRemark返回null,我希望它为与作者匹配的每首歌返回一个节点数组,以及每首歌曲中作者的映射信息。
答案 0 :(得分:0)
此刻,盖茨比目前似乎并不支持。一位朋友给我发了这个邮件:
https://github.com/gatsbyjs/gatsby/issues/4614
如果可以的话,我会尽力为Gatsby做出修复:)