【问题标题】:Convert a string to a custom JSX element and render it将字符串转换为自定义 JSX 元素并渲染它
【发布时间】:2018-02-03 20:06:05
【问题描述】:

我将部分数据持久存储为自定义 React 组件的 JSX 字符串表示形式,现在我想从数据库中检索这些组件并渲染到 DOM。

我已经尝试使用https://github.com/milesj/interweave 使用<Markup content={myJSX} />

我试过<div dangerouslySetInnerHTML={{ __html:
${myJSX}
}} />

我试过了:

const teaserBoardHtml = `<div>test<br/> ${teaser_board} <br/> test</div>`
return (
    <div dangerouslySetInnerHTML={{__html: teaserBoardHtml }}></div>
);

teaser_board 是一个包含自定义反应组件的字符串

<MakeBoard {...someProps} /> 

它会呈现我放入字符串中的任何 HTML,但不会呈现我的自定义反应组件 - 它什么也不呈现。

例如,const teaserBoardHtml = '&lt;div&gt;test &lt;br/&gt;' + teaser_board + ' test&lt;/div&gt;' 将渲染测试测试,但中间没有任何内容

这些都不起作用。有什么想法吗?

【问题讨论】:

    标签: reactjs


    【解决方案1】:

    如果你使用危险的SetInnerHTML,你必须写html而不是JSX。

    const myHtml = '<div class="toto"> <p> whatever </p> </div>'; 
    

    然后在你的渲染中

    render() {
        <div dangerouslySetInnerHTML = {{__html: myHtml }} />
    }
    

    【讨论】:

    • 编辑问题以反映我尝试过的事情以及出了什么问题。
    猜你喜欢
    • 2021-05-22
    • 2021-06-14
    • 2023-03-11
    • 2020-03-23
    • 2020-12-07
    • 2017-09-11
    • 2023-03-11
    • 2021-01-19
    • 1970-01-01
    相关资源
    最近更新 更多