【发布时间】:2016-12-08 05:04:05
【问题描述】:
我正在从包含组件标签的 rest API 获取字符串。 以下是示例字符串:-
let stringFromAPI = "Lorem ipsum dolor sit amet, <TooltipComponent>consectetur</TooltipComponent> adipiscing elit. Non enim, <ButtonComponent>si omnia</ButtonComponent> non sequebatur, idcirco non erat ortus illinc. Re mihi non aeque satisfacit, et quidem locis pluribus. Ita relinquet duas, de quibus etiam atque etiam consideret. Ad <TooltipComponent>corpus</TooltipComponent> diceres pertinere-, sed ea, quae dixi, ad corpusne refers?"
当我渲染它时,组件显示为文本而不是渲染。 如何在字符串中渲染组件?
render() {
return ( <div>{stringFromAPI}</div>
)
}
dangerouslySetInnerHTML={{__html: rawMarkup}} 只呈现 html 元素而不是反应组件。
【问题讨论】:
-
所以这个例子中的标签是:consectetur、si omnia和corpus?也许如果你准备了一个 jsfiddle 会更容易解决你的问题
-
问题已编辑,请立即查看。
-
这不重复我试图用 reactjs 渲染组件而不是 html
-
您可以遍历从服务器获取的字符串,每当您找到
'<'时,您就跟踪该索引,同样您跟踪'>'的索引。您可以有一个函数为您执行此操作,它将返回一个对象列表或列表列表,其中包含具有开始和结束索引的每个组件的对象或列表。然后,您将通过 start 和 end 多次对字符串进行切片,以取出组件并将它们与原始 html 分开呈现。
标签: reactjs