在 ReactMarkDown 中渲染 JSX
Render JSX inside ReactMarkDown
如何在 ReactMarkDown 中渲染 JSX?我想将我的 JSX 元素包装在 ReactMarkDown
组件中并实现这样的效果,
<ReactMarkdown>
<Grid>
{Some text}
</Grid>
<Grid>
{Some text}
</Grid>
</ReactMarkdown>
最好的方法是什么而不是在每个 JSX 元素中多次使用 <ReactMarkdown>
?
您可能想要创建自定义组件。
此组件示例映射到您的 children 节点,并用 ReactMarkDown
包装每个 child。
https://reactjs.org/docs/react-api.html#reactchildrenmap
const MarkdownPlus = ({ children }) => (
React.Children.map(children, child => (
<ReactMarkdown>
{React.cloneElement(child, {})}
</ReactMarkdown>
)))
);
然后像这样使用它
<MarkdownPlus>
<Grid>
{Some text}
</Grid>
<Grid>
{Some text}
</Grid>
</MarkdownPlus>
免责声明:我不确定 ReactMarkdown 是否接受 <Grid>
作为 child。如果它只接受纯文本(降价代码),那么上面的代码将不起作用。您需要将 <ReactMarkDown>
应用到每个 <Grid>
.
你可以看看MDX,它可以让你同时使用 JSX 和 markdown。
例如:
<Grid>
# heading
</Grid>
<Grid>
*italic*
</Grid>
如何在 ReactMarkDown 中渲染 JSX?我想将我的 JSX 元素包装在 ReactMarkDown
组件中并实现这样的效果,
<ReactMarkdown>
<Grid>
{Some text}
</Grid>
<Grid>
{Some text}
</Grid>
</ReactMarkdown>
最好的方法是什么而不是在每个 JSX 元素中多次使用 <ReactMarkdown>
?
您可能想要创建自定义组件。
此组件示例映射到您的 children 节点,并用 ReactMarkDown
包装每个 child。
https://reactjs.org/docs/react-api.html#reactchildrenmap
const MarkdownPlus = ({ children }) => (
React.Children.map(children, child => (
<ReactMarkdown>
{React.cloneElement(child, {})}
</ReactMarkdown>
)))
);
然后像这样使用它
<MarkdownPlus>
<Grid>
{Some text}
</Grid>
<Grid>
{Some text}
</Grid>
</MarkdownPlus>
免责声明:我不确定 ReactMarkdown 是否接受 <Grid>
作为 child。如果它只接受纯文本(降价代码),那么上面的代码将不起作用。您需要将 <ReactMarkDown>
应用到每个 <Grid>
.
你可以看看MDX,它可以让你同时使用 JSX 和 markdown。
例如:
<Grid>
# heading
</Grid>
<Grid>
*italic*
</Grid>