【发布时间】:2021-11-14 07:05:47
【问题描述】:
我正在尝试从这个查询中呈现富文本,但页面是空白的。我真的很困惑,因为文档只显示了如何呈现图像资产的示例。谁能帮忙??
我正在尝试以内容丰富的格式显示富文本,即第一行应该是粗体
/* eslint-disable */
import React from 'react';
import { Helmet } from 'react-helmet';
import { graphql } from 'gatsby';
import Layout from '../components/layout';
import { documentToReactComponents } from '@contentful/rich-text-react-renderer';
import { renderRichText } from "gatsby-source-contentful/rich-text"
import { BLOCKS, MARKS } from "@contentful/rich-text-types"
export const query = graphql`
query MyQuery($slug: String) {
contentfulLongPost(Slug: {eq: $slug}) {
title
updatedAt(formatString: "MMMM Do, YYYY")
body {
raw
}
}
}
`;
const options = {
renderMark: {
[MARKS.BOLD]: (text) => <span>{text}</span>
},
}
const CaseStudy = ({data}) => {
const { bodyRichText } = data.contentfulLongPost
return (
<Layout>
<div> {bodyRichText && renderRichText(bodyRichText, options)}</div>
</Layout>
);
};
export default CaseStudy;
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
【问题讨论】:
-
你不是说要通过
data.contentfulLongPost.body.raw吗?此外,如果您使用 Gatsby,则不应将脚本标签放入页面以加载 React。
标签: javascript reactjs gatsby contentful