react解析html字符串的方法

写项目的时候会存在一些详情页,后端返回的会带一些p之类的标签,需要我们前端来解析,刚开始搜的话有说让用dangerouslySetInnerHTML属性来改的,他的案例是这样:

javascript 复制代码
function MyComponent() {
  const htmlString = "<p>Hello, world!</p>";
  return <div dangerouslySetInnerHTML={{ __html: htmlString }} />;
}

他这是直接把内容放到htmlString里边了,但是咱们交互的肯定不是这,加入是res.data,,我按照他这样去写,如下:

javascript 复制代码
function MyComponent() {
  return <div dangerouslySetInnerHTML={{ __html: res.data }} />;
}

还是不能够解析标签,还是标签会显示出来,所以最后用的react-html-parser,而且dangerouslySetInnerHTML有风险。
react-html-parser安装

javascript 复制代码
yarn  add react-html-parser
或者
npm install react-html-parser

引入

javascript 复制代码
import ReactHtmlParser from 'react-html-parser';

使用

javascript 复制代码
const parseHtmlContent = (htmlContent:string) => {
	const parseContent = ReactHtmlParser(htmlContent,{
	  transform:(node:any) => {
	       if(node.type == 'text'){
	          const parseText = ReactHtmlParser(node.data)
	          return parseText;
	       }  
	  }
	})
	     return parseContent;
}
html 复制代码
<div class="content">
      {parseHtmlContent(context.text)}
 </div>

context.text为通过接口获取到的内容,可以根据自己获取到的内容放里边,我这样是可以的,大家可以参考一下,可能有时候部分需要变动一下。

相关推荐
青衫码上行14 小时前
【Java Web学习 | 第十篇】JavaScript(4) 对象
java·开发语言·前端·javascript·学习
CodeLongBear14 小时前
第一次搭建个人主页+GitHub部署全记录:HTML/CSS/JS前端实现+留言板踩坑
前端·个人页面·部署上线
by__csdn14 小时前
Node各版本的区别,如何选择版本以及与NPM版本对照关系
前端·npm·node.js
q***428214 小时前
前端的dist包放到后端springboot项目下一起打包
前端·spring boot·后端
Dontla15 小时前
React zustand todos案例(带本地存储localStorage、persist)todoStore.ts
前端·react.js·前端框架
阿珊和她的猫15 小时前
WebRTC 技术深度解析:实时通信的未来引擎
前端·webpack·node.js·webrtc
silence_xiang15 小时前
【React】首页悬浮球实现,点击出现悬浮框
前端·javascript·react.js
申阳15 小时前
Day 11:集成百度统计以监控站点流量
前端·后端·程序员
Cache技术分享15 小时前
239. Java 集合 - 通过 Set、SortedSet 和 NavigableSet 扩展 Collection 接口
前端·后端
超级罗伯特15 小时前
大屏自适应,响应式布局,亲测有效
前端·javascript·html·大屏·驾驶舱