我正在尝试在我的反应应用程序中使用表情符号。我已经安装了 twemoji npm 包并创建了一个基本组件,如下所示
class TwText extends React.Component {
render() {
let toHTML = () => ({
__html: twemoji.parse(this.props.text)
});
return (
<span className="tw-text" dangerouslySetInnerHTML={toHTML()} />
);
}
}
let msg = {text: "hello world \u{1f61a}"}
ReactDOM.render(
// <TwText text={'hello world \u{1f61a}'}/>, // works
<TwText text={msg.text}/>, // doesn't work for me
document.getElementById("root")
);
<div id="root"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<script src="https://twemoji.maxcdn.com/v/latest/twemoji.min.js" crossorigin="anonymous"></script>
但是,如果我尝试如下调用它
<TwText text={'hello world \u{1f61a}'}/>
<TwText text={msg.text}/>
第一行实际上呈现了表情符号,但如果同一行“hello world \u{1f61a}”通过变量传递,则它不会按预期呈现。有谁知道为什么?