3

现在我正在尝试用react-emojify和解析一些文本react-markdown。我想以某种方式结合这两个实用程序的功能。

问题是(如果我理解正确的话)两者都将字符串转换为 React DOM。当我运行emojifycontent,结果不能传入<ReactMarkdown source={result} />,反之亦然。

我正在考虑做一些事情,比如将 React DOM 序列化为 HTML 并允许在另一个解析器中使用一些标签,但是在使它们兼容时,两者都有相当有限的选择(例如,emojify 将表情符号吐出为跨度,这在 ReactMarkdown 中是不允许的)。

有其他人尝试过吗?有什么方法(甚至通过更改库)可以帮助我实现这一目标吗?

4

1 回答 1

2

我设法通过替换react-emojifyemojione

import emojione from 'emojione';
import React from 'react';
import ReactMarkdown from 'react-markdown';

class ExampleComponent extends React.Component {
  render() {
    const content = this.props.content;
    const emojified = emojione.shortnameToImage(content);
    return (
      <ReactMarkdown source={emojified} />
    );
  }
}

后来我只需要通过更改.emojioneCSS 中的类属性来调整表情符号的显示方式(而不是将选项对象传递给react-emojify函数)。

于 2016-09-18T21:05:52.070 回答