有一个gatsby 博客,我在其中添加了一个封面图像,该图像可以是图像(我希望它显示为 Gatsby 图像)或 mp4(我希望它显示为 html5 视频)。
问题是,当我查询这个字段时(在我的降价帖子中,cover: x.mp4
或者cover: x.jpg
),如果它是一个 mp4 并且它没有childImageSharp
(错误:)的属性TypeError: Cannot read property 'fluid' of null
。
我的查询如下所示:
frontmatter {
date(formatString: "YYYY")
title
cover {
childImageSharp {
fluid(maxWidth: 900) {
...GatsbyImageSharpFluid_noBase64
...GatsbyImageSharpFluidLimitPresentationSize
}
}
}
}
所以我的目标是拥有某种 JSX,例如:
{post.frontmatter.cover.childImageSharp && (
<Img fluid={post.frontmatter.cover.childImageSharp.fluid} />
)}
{post.frontmatter.cover.childImageSharp ? '' : (
<video src={post.frontmatter.cover} />
)}
有任何想法吗?