现在我正在尝试使用react-emojify
和react-markdown
解析一些文字。我想以某种方式结合两个实用程序的功能。
问题是(如果我理解正确的话)将字符串转换为React DOM。当我在emojify
上运行content
时,结果无法传递到<ReactMarkdown source={result} />
,反之亦然。
我正在考虑做某事,比如将React DOM序列化为HTML并在其他解析器中允许一些标签,但是在使它们兼容时两者都有相当有限的选项(例如emojify吐出表情符号作为跨度,这在ReactMarkdown中是不允许的)。
还有其他人试过吗?是否有某种方式(即使通过更改库)可以帮助我实现这一目标?
答案 0 :(得分:2)
我设法通过将react-emojify
替换为emojione
来实现目标:
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
类属性(而不是将选项对象传递到react-emojify
函数)来调整如何显示表情符号。