Javascript 如何在使用危险的HTML呈现内容时使用React链接?

Javascript 如何在使用危险的HTML呈现内容时使用React链接?,javascript,reactjs,react-router,Javascript,Reactjs,React Router,因此,我正在为react应用程序开发一个博客页面。页面正在从CMS加载数据,博客文章的内容是原始html,我在页面上使用以下内容呈现: 但是我在帖子里放的任何链接都像 不要使用react路由器,而是触发重新加载页面 是否有一种方法可以在react中处理此问题,而不必解析HTML并将标记替换为?您可以使用HTML容器上的单击处理程序捕获单击。如果点击源于获取对象的,并使用push方法通知路由器。您还可以编辑url,或以其他方式对其进行操作 示例(使用代码时取消注释并删除控制台): //从“re

因此,我正在为react应用程序开发一个博客页面。页面正在从CMS加载数据,博客文章的内容是原始html,我在页面上使用以下内容呈现:

但是我在帖子里放的任何链接都像
不要使用react路由器,而是触发重新加载页面


是否有一种方法可以在react中处理此问题,而不必解析HTML并将
标记替换为

您可以使用HTML容器上的单击处理程序捕获单击。如果点击源于获取对象的
,并使用
push
方法通知路由器。您还可以编辑url,或以其他方式对其进行操作

示例(使用代码时取消注释并删除控制台):

//从“react router dom”导入{withRouter}
类HTMLContent扩展了React.Component{
contentClickHandler=(e)=>{
const targetLink=e.target.closest('a');
如果(!targetLink)返回;
e、 预防默认值();
console.log(targetLink.href);//this.props.history.push(e.target.href)
};
render(){
返回(
);
}
}
//使用路由器导出默认值(HTMLContent);
常量内容=`
`;
ReactDOM.render(
,
演示
);

非常感谢。只是一个小提示:如果您提供相对路由链接,比如(/something),您可以通过
this.props.history.push(e.target.getAttribute(“href”))获得它