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为通过接口获取到的内容,可以根据自己获取到的内容放里边,我这样是可以的,大家可以参考一下,可能有时候部分需要变动一下。

相关推荐
李伟_Li慢慢1 小时前
04-three.js的渲染流程概览
前端·three.js
李伟_Li慢慢1 小时前
07-WebGLProperties
前端·three.js
爱勇宝1 小时前
AI 都能写代码了,还要学计算机吗?
前端·后端·程序员
石像鬼₧魂石1 小时前
【Y2Ksoft】四季贵州水世界乐园管理系统 —— 玻璃拟态 · 单文件HTML · 开箱即用
前端·html
涛涛ing2 小时前
尤雨溪宣布:Vue 3.6 发布、Vue 4.0 启动、Vite 8 已落地
前端
李伟_Li慢慢2 小时前
05-mini版材质
前端·three.js
学以智用2 小时前
HTTP 请求头 Headers 完整详解
前端·后端
李伟_Li慢慢2 小时前
03-threejs架构原理浅析
前端·three.js
cidy_982 小时前
Codex、Hermes、Claude 使用共享知识库的对比
前端
牧艺2 小时前
浏览器 3D 交互实战:射线拾取、描边高亮与业务面板联动
前端·three.js·数据可视化