【发布时间】:2016-12-22 05:59:17
【问题描述】:
我有:HTML 字符串数组,例如["<h1>Hi", "</h1>"]。
我想在它们之间放置<MyReactComponent/>
(从而实现在 jsx 中的布局:<h1>Hi<MyReactComponent/></h1>)。
我如何做到这一点?
我试过了:
Babel.transform('<h1>Hi<MyReactComponent/></h1>')(使用独立的 Babel)。它确实有效,但需要我对<MyReactComponent/>进行字符串化,这并不优雅,可能有一天会中断。使用常规 jsx
render() => <MyReactComponent/>,然后在componentDidMount上通过操作 DOM 前置 HTML,但浏览器会自动插入结束标签,所以我会得到<h1>Hi</h1><MyReactComponent/><h1></h1>-
使用
李>jsx-to-html库和innerHTML,将<MyReactComponent/>转换为HTML 字符串,将其与<h1>Hi</h1>结合,但它会破坏与<MyReactComponent/>的任何React 交互。
【问题讨论】:
-
你试过用
React.createElement解析字符串来创建DOM吗?这是一个选项还是您只想生成jsx? -
绝对是一种选择。
标签: javascript html reactjs jsx babeljs