现在,我正在尝试使用react-emojify和react-markdown来解析一些文本。我想以某种方式将这两个实用程序的功能结合起来。
问题是(如果我理解正确的话)两者都将字符串转换为React DOM。当我在content上运行emojify时,结果不能传递到<ReactMarkdown source={result} />中,反之亦然。
我正在考虑做一些事情,比如将React DOM序列化为超文本标记语言,并允许在另一个解析器中使用一些标签,但当涉及到使它们兼容时,两者的选择都相当有限(例如,emojify将表情符号作为跨度,而这在ReactMarkdown中是不允许的)。
还有人试过吗?有没有什么方法(甚至是通过更改库)可以帮助我做到这一点?
发布于 2016-09-19 05:05:52
我用emojione替换了react-emojify,从而让事情变得正常
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} />
);
}
}后来,我只需要通过更改CSS中的.emojione类属性来调整表情符号的显示方式(而不是将option对象传递给react-emojify函数)。
https://stackoverflow.com/questions/39558238
复制相似问题