【问题标题】:Render HTML string w/JSX expression in React dangerouslySetInnerHTML()在 React dangerouslySetInnerHTML() 中渲染带有 JSX 表达式的 HTML 字符串
【发布时间】:2015-10-15 20:33:34
【问题描述】:

我已经成功地使用 React 的 dangerouslySetInnerHTML 来呈现我从 API 获得的 HTML 字符串响应,但是现在我需要向由 dangerouslySetInnerHTML 设置的某些响应部分添加点击处理程序。有没有办法将处理程序添加到危险的SetInnerHTML 内容?示例:

var api_response = '<a onClick={this.props.methodName} href="www.google.com">example</a>';

return <div dangerouslySetInnerHTML={_markupFromString(api_response)}></div>

function _markupFromString (msg) {
    return { '__html': msg };
}

【问题讨论】:

    标签: javascript html reactjs react-jsx


    【解决方案1】:

    这行不通。 dangerouslySetInnerHTML() 不适用于 JSX。更好的策略是让 AJAX 调用简单地返回所需的字符串和(链接和标题)并提供具有这些值作为道具的组件。在这种情况下,组件只是链接。

    【讨论】:

    【解决方案2】:

    或者您可以在文件 public/index.html 中添加您的 SVG,然后在您的组件中创建这样的函数

    doSomething() {
     console.log('ajajaj');
    }
    
    componentDidMount() {
     window.NameVarible =  this.doSomething;
    }
    

    并在 SVG 中添加您的活动 onClick="NameVariable()"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-24
      • 1970-01-01
      • 2020-07-10
      • 1970-01-01
      • 2018-08-30
      • 1970-01-01
      • 2020-08-07
      • 1970-01-01
      相关资源
      最近更新 更多