【发布时间】:2018-01-30 16:37:21
【问题描述】:
我有一个小的反应页面,应该编译和显示 html 字符串。 react-foundation写的字符串中的html
页面如下所示:
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import { Link, Button, Colors } from 'react-foundation';
require('./foundation.css')
var htmlFromApi = '<div className="button-basics-example"><Button color={Colors.SUCCESS}>Save</Button><Button color={Colors.ALERT}>Delete</Button></div>';
var App = ({ html }) => { return <div>{html}</div> }
ReactDOM.render(
<App html={htmlFromApi}/>,
document.getElementById('react')
);
上面代码的Result只是一个字符串,我想知道有没有办法将html字符串转换为react元素
类似这样的:
var reactElement= toReactElement(htmlFromApi);
//the result is <div className="button-basics-example"><Button color={Colors.SUCCESS}>Save</Button><Button color={Colors.ALERT}>Delete</Button></div>
PS 我试过<div className="content" dangerouslySetInnerHTML={{ __html: htmlFromApi }}></div> 还是不行
提前致谢
编辑:代码是here
【问题讨论】:
-
尝试使用 dangerouslySetInnerHTML - facebook.github.io/react/docs/…
-
React.createElement(elementString, propsObject) 怎么样?
-
@Dan 没用,bcz dangerouslySetInnerHTML 期望编译的 html 字符串,但我的字符串没有编译
-
@isa424 我不能使用 React.createElement bcz 我不知道字符串会是什么样子,而且它是一个很长的字符串,有很多嵌套组件
标签: javascript html reactjs babeljs