gatsby-source-contentful BLOCKS.EMBEDDED_ASSET 数据为空
gatsby-source-contentful BLOCKS.EMBEDDED_ASSET data is empty
我想显示内容丰富的富文本图像,我遵循了文档,但不知何故我的 Json stringify 得到了这个:
{
"nodeType": "embedded-asset-block",
"content": [],
"data": {}
}
如你所见,数据为空,打赌当我 console.log 富文本不使用文本类型时,我得到了数据和一个 id
"{\"nodeType\":\"document\",\"data\":{},\"content\":[{\"nodeType\":\"embedded-asset-block\",\"content\":[],\"data\":{\"target\":{\"sys\":{\"id\":\"aciyXa5B0eFpwNev0kUjC\",\"type\":\"Link\",\"linkType\":\"Asset\"}}}}
在我的“剪切”Graphql 下方,是的,我可以 console.log 来自参考文献的图像数据。
div4 : contentfulRepeater(name: {eq: "div4"}) {
h1
p {
raw
references {
... on ContentfulAsset {
contentful_id
fixed(width: 1600) {
width
height
src
srcSet
}
}
}
}
}
我如何呈现数据:
<div className="">
<h2 dangerouslySetInnerHTML={{ __html: data.div4.h1 }} />
<div>{data.div4.p && renderRichText(data.div4.p, options)}</div>
<pre>
<code>{JSON.stringify(data.div4.p.raw, null, 2)}</code>
</pre>
</div>
选项
const options = {
renderMark: {
[MARKS.BOLD]: text => <Bold>{text}</Bold>,
},
renderNode: {
[BLOCKS.PARAGRAPH]: (node, children) => <Text>{children}</Text>,
[BLOCKS.HYPERLINK]: (node, children) => <HLink>{children}</HLink>,
[BLOCKS.EMBEDDED_ASSET]: (node, children) => {
return(
<>
<pre>
<code>{JSON.stringify(node, null, 2)}</code>
</pre>
</>
)
},
},
}
您需要在查询中同时添加“contentful_id”和“__typename”
raw
references {
... on ContentfulAsset {
contentful_id
__typename
fixed(width: 1600) {
我想显示内容丰富的富文本图像,我遵循了文档,但不知何故我的 Json stringify 得到了这个:
{
"nodeType": "embedded-asset-block",
"content": [],
"data": {}
}
如你所见,数据为空,打赌当我 console.log 富文本不使用文本类型时,我得到了数据和一个 id
"{\"nodeType\":\"document\",\"data\":{},\"content\":[{\"nodeType\":\"embedded-asset-block\",\"content\":[],\"data\":{\"target\":{\"sys\":{\"id\":\"aciyXa5B0eFpwNev0kUjC\",\"type\":\"Link\",\"linkType\":\"Asset\"}}}}
在我的“剪切”Graphql 下方,是的,我可以 console.log 来自参考文献的图像数据。
div4 : contentfulRepeater(name: {eq: "div4"}) {
h1
p {
raw
references {
... on ContentfulAsset {
contentful_id
fixed(width: 1600) {
width
height
src
srcSet
}
}
}
}
}
我如何呈现数据:
<div className="">
<h2 dangerouslySetInnerHTML={{ __html: data.div4.h1 }} />
<div>{data.div4.p && renderRichText(data.div4.p, options)}</div>
<pre>
<code>{JSON.stringify(data.div4.p.raw, null, 2)}</code>
</pre>
</div>
选项
const options = {
renderMark: {
[MARKS.BOLD]: text => <Bold>{text}</Bold>,
},
renderNode: {
[BLOCKS.PARAGRAPH]: (node, children) => <Text>{children}</Text>,
[BLOCKS.HYPERLINK]: (node, children) => <HLink>{children}</HLink>,
[BLOCKS.EMBEDDED_ASSET]: (node, children) => {
return(
<>
<pre>
<code>{JSON.stringify(node, null, 2)}</code>
</pre>
</>
)
},
},
}
您需要在查询中同时添加“contentful_id”和“__typename”
raw
references {
... on ContentfulAsset {
contentful_id
__typename
fixed(width: 1600) {