首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将标记文本转换为React组件

将标记文本转换为React组件
EN

Stack Overflow用户
提问于 2019-07-16 04:34:47
回答 1查看 4.8K关注 0票数 2

我使用一个名为react-markdown的npm包将一段标记文本转换为HTML代码:

代码语言:javascript
复制
import React, { PureComponent } from 'react';
import ReactMarkdown from 'react-markdown';

let body = '## Some markdown text in multiple paragraphs';

class Post extends PureComponent {
  render() {
    <ReactMarkdown source={body} />
  }
}

export default Post;

这很好,除非用标准的<p>标记呈现单个段落。在我的用例中,我需要将它们呈现为自定义组件,比如<MyParagraph>。换言之,请考虑以下输入案文:

代码语言:javascript
复制
This is paragraph one.

Lorem ipsum doler sit.

This is paragraph two.

react-markdown将标记呈现为:

代码语言:javascript
复制
<p>This is paragraph one.</p>

<p>Lorem ipsum doler sit.</p>

<p>This is paragraph two.</p>

我需要的是:

代码语言:javascript
复制
<MyParagraph>This is paragraph one.</MyParagraph>

<MyParagraph>Lorem ipsum doler sit.</MyParagraph>

<MyParagraph>This is paragraph two.</MyParagraph>

这个模块可以吗?还是我该用点别的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-16 06:16:15

我发现了这个:https://github.com/rexxars/react-markdown/issues/218

renderers属性有助于创建自定义组件。

代码语言:javascript
复制
import ReactDOM from "react-dom";
import React, { PureComponent } from "react";
import ReactMarkdown from "react-markdown";

let body =
  "## Some markdown text in multiple paragraphs\n\nAnd this is a paragraph 1\n\nAnd this is a paragraph 2\n\nAnd this is a paragraph 3";

const MyParagraph = props => (
  <p>This is inside MyParagraph, and the value is {props.children}</p>
);

// see https://github.com/rexxars/react-markdown#node-types
const renderers = {
  paragraph: props => <MyParagraph {...props} />
};

class Post extends PureComponent {
  render() {
    return <ReactMarkdown source={body} renderers={renderers} />;
  }
}

export default Post;

ReactDOM.render(<Post />, document.getElementById("root"));

下面是上面代码的代码框:https://codesandbox.io/s/awesome-surf-r05kb?fontsize=14

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57050107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档