Markdownのフロントマッターからtitle
、author
、coverImg
を要求するMarkdownファイルのgraphqlクエリがあります。
一部のMarkdownファイルにはカバー画像がなく、画像がない場合、coverImgのタイプはStringのように見えます
使ってます gatsby-image
はsharp
を使用し、coverImg
がオブジェクトで文字列ではない場合、coverImg
パラメータの子に降りたい
これは私の質問です
query($path: String!) {
markdownRemark(fields: { slug: { eq: $path } }) {
frontmatter {
title
author
coverImg {
childImageSharp {
fluid(maxWidth: 600) {
src
srcSet
sizes
aspectRatio
}
}
}
}
}
}
これを試すとエラーが表示されます
There was an error in your GraphQL query:
Field "cover" must not have a selection since type "String" has no subfields.
This can happen if you e.g. accidentally added { } to the field "cover". If you didn't expect "cover" to be of type "String" make sure that your input source and/or plugin is correct.
graphql ifステートメント があるようですが、これらを使用して条件付きで子に分岐する方法がわかりません。次のようなものを追加できるといいですね
coverImg @skip(if: coverImg is String) {
Ithinkgraphql union types を使用して、必要なことを実行できるはずです。私はそれらをオブジェクトではなく文字列で使用したことがありませんが、それを行う方法があるはずです????