我正在用React构建一些东西,我需要在JSX中插入带有React变量的HTML。有没有一种方法可以让一个变量像这样:
var thisIsMyCopy = '<p>copy copy copy <strong>strong copy</strong></p>';
然后像这样把它插入react,让它工作?
render: function() {
return (
<div className="content">{thisIsMyCopy}</div>
);
}
并让它按预期插入HTML ?我还没有见过或听说过任何一个react函数可以内联做这件事,或者一个解析东西的方法可以让它工作。
dangerlysetinnerhtml有很多缺点,因为它设置在标签内部。
我建议你使用一些react包装器,比如我在npm上找到的。
Html-react-parser做同样的工作。
import Parser from 'html-react-parser';
var thisIsMyCopy = '<p>copy copy copy <strong>strong copy</strong></p>';
render: function() {
return (
<div className="content">{Parser(thisIsMyCopy)}</div>
);
}
非常简单:)
更新
在最新版本中,用法解释如下:
// ES Modules
import parse from 'html-react-parser';
// CommonJS
const parse = require('html-react-parser');
....
//Parse single element
parse('<li>Item 1</li><li>Item 2</li>');
//Parse multiple elements
parse('<li>Item 1</li><li>Item 2</li>');