Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法将ReactJs事件附加到从Ajax JSON响应动态插入的HTML中?_Json_Ajax_Reactjs_Events - Fatal编程技术网

有没有办法将ReactJs事件附加到从Ajax JSON响应动态插入的HTML中?

有没有办法将ReactJs事件附加到从Ajax JSON响应动态插入的HTML中?,json,ajax,reactjs,events,Json,Ajax,Reactjs,Events,我有一个带有按钮和div的react组件。单击按钮时,服务器将用ajax响应填充此div 服务器响应为JSON格式,其中一个JSON属性包含包含HTML内容的字符串值。此特性值将指定给零部件状态 在输出中,我看到页面上显示了原始HTML。我设法用“react render html”包实现了这一点 现在,我需要将事件附加到某些HTML元素中,其中包含特定的类。使用jQuery时,.on'.classname'用于将事件附加到此类元素。有没有一种方法,我可以用React实现同样的效果。事件处理程序

我有一个带有按钮和div的react组件。单击按钮时,服务器将用ajax响应填充此div

服务器响应为JSON格式,其中一个JSON属性包含包含HTML内容的字符串值。此特性值将指定给零部件状态

在输出中,我看到页面上显示了原始HTML。我设法用“react render html”包实现了这一点


现在,我需要将事件附加到某些HTML元素中,其中包含特定的类。使用jQuery时,.on'.classname'用于将事件附加到此类元素。有没有一种方法,我可以用React实现同样的效果。事件处理程序应该是组件内部的方法。

来自React文档:

危险性西汀

危险的LysetinerHTML是React在中使用innerHTML的替代品 浏览器是DOM。通常,从代码中设置HTML是有风险的,因为 很容易不经意地将用户暴露在跨站点脚本中 XSS攻击。因此,您可以直接从React设置HTML,但是 键入危险的LysetinerHTML并传递带有uu html的对象 钥匙,提醒自己这很危险。例如:

function createMarkup() {
  return {__html: 'First · Second'};
}

function MyComponent() {
  return <div dangerouslySetInnerHTML={createMarkup()} />;
}
因此,您的API调用将填充某些组件或应用程序状态,然后将其作为元素上的危险的Html属性传递

对于特定于类的处理程序,我不确定是否有一个优雅的解决方案。这是非常开始闻,如果可能的话,你应该重新考虑你的HTML在数据库中的实现


这就是说,您仍然可以在没有Jquery的情况下在原生JavaScript中的类上设置事件处理程序,您可以在这里这样做。需要注意的是,如果应用程序/组件重新呈现,这些事件处理程序将被删除。如果您想继续使用此路径,则需要仔细管理HTML/事件处理程序,以便在渲染时重新初始化它们自己,或者以这样一种方式管理渲染流,即它们不会重新渲染,除非在您认为必须的条件下。

回答有点晚,但它们是通过使用react html解析器完成的另一种方式

这是解析html字符串以响应元素的更好方法

import ReactHtmlParser from 'react-html-parser' ;
<p>ReactHtmlParser("<h2>Hello world</h2>")</p>