考虑以下对React.createElement
的调用:
React.createElement('span', null, null, ['><',])
这会导致React逃脱>
和<
。有没有办法避免这个文本被转义?
答案 0 :(得分:10)
const Component = () => (
<span dangerouslySetInnerHTML={{ __html: '><' }} />
);
ReactDOM.render(
<Component />, document.getElementById('container')
);
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="container"></div>
&#13;
或使用Unicode codes
代替HTML特殊字符
const Component = () => (
<span>{'\u003E\u003C'}</span>
);
ReactDOM.render(
<Component />, document.getElementById('container')
);
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="container"></div>
&#13;