有没有办法将ReactJs事件附加到从Ajax JSON响应动态插入的HTML中?
我有一个带有按钮和div的react组件。单击按钮时,服务器将用ajax响应填充此div 服务器响应为JSON格式,其中一个JSON属性包含包含HTML内容的字符串值。此特性值将指定给零部件状态 在输出中,我看到页面上显示了原始HTML。我设法用“react render 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实现同样的效果。事件处理程序
现在,我需要将事件附加到某些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>