我想用一个字符串作为输入来呈现react组件,这个字符串是我从另一个页面动态接收的,但是我会有react组件的引用。
Page1:
-----------------------------
loadPage('<div><Header value=signin></Header></div>');
Page2:
--------------------------------
var React =require('react');
var Header = require('./header');
var home = React.createClass({
loadPage:function(str){
this.setState({
content : str
});
},
render : function(){
return {this.state.content}
}
});
在这个例子中,我以字符串的形式接收Header组件,并且我在接收页面中有Header组件的引用。我如何用实际的react组件替换字符串
6条答案
按热度按时间slhcrj9b1#
这个react-jsx-parser组件看起来可以解决您的问题
tzxcd3kk2#
若要使用字符串渲染React组件,可以使用。
有关更多信息,请查看此处的响应:React / JSX Dynamic Component Name
ztigrdn83#
如果您可以接受将所有组件放在一个模块中,那么这样做效果会很好:
通配符导入的工作方式类似于剪切率组件注册表。
mfpqipee4#
内置方式
不使用任何包,您可以使用内置的react属性
dangerouslySetInnerHTML
来传递字符串,它将render
它作为HTML它会工作得很好。
但是尽量避免渲染文本,因为这可能会使您遭受XSS攻击,除非别无选择,否则您应该XSS清除文本或避免渲染文本
hujrc8aj5#
使用组件的另一种方法
在渲染函数中
这将在JSON对象中呈现组件
qyswt5oh6#
此string-to-react-component库可以帮助您实现所需的功能