【发布时间】:2020-09-08 04:52:32
【问题描述】:
有一个gatsby blog,我添加了一个封面图片,它可以是图片(我希望它显示为 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} />
)}
有什么想法吗?
【问题讨论】:
标签: graphql gatsby netlify-cms gatsby-image