【发布时间】:2021-05-01 21:42:00
【问题描述】:
我无法让 Contenful 中的长文本字段在 Gatsby 中正确输出。
我试过了:
const ProjectPost = ({ data }) => {
const { title, body } = data.contentfulProject
return (
<Layout>
<SEO title={title} />
<div className="blogpost">
<h1>{title}</h1>
<div>{body.body}</div>
</div>
</Layout>
)
}
export default ProjectPost
export const pageQuery = graphql`
query($slug: String!) {
contentfulProject(slug: { eq: $slug }) {
title
slug
body {
body
}
}
}
`
{body.body} 输出的内容没有任何标记。这只是用引号括起来的几段。
如果我这样做:
import React from "react"
import { graphql } from "gatsby"
import Layout from "../components/layout"
import SEO from "../components/seo"
const ProjectPost = ({ data }) => {
const { title, body } = data.contentfulProject
return (
<Layout>
<SEO title={title} />
<div className="blogpost">
<h1>{title}</h1>
<div>{body.childMarkdownRemark.html}</div>
</div>
</Layout>
)
}
export default ProjectPost
export const pageQuery = graphql`
query($slug: String!) {
contentfulProject(slug: { eq: $slug }) {
title
slug
body {
childMarkdownRemark {
html
}
}
}
}
`
它输出用引号括起来的 HTML,但在浏览器中不会被解析为 HTML。我做错了什么?
【问题讨论】:
标签: reactjs gatsby contentful