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

相关推荐
行走的陀螺仪35 分钟前
GitLab CI/CD 完整教学指南
前端·ci/cd·gitlab·团队开发·自动化测试部署
谢尔登1 小时前
Webpack高级之常用配置项
前端·webpack·node.js
helloyangkl1 小时前
前端——不同环境下配置env
前端·javascript·react.js
竹秋…1 小时前
webpack搭建react开发环境
前端·react.js·webpack
以明志、1 小时前
并行与并发
前端·数据库·c#
提笔了无痕1 小时前
go web开发表单知识及表单处理详解
前端·后端·golang·web
甜味弥漫1 小时前
JavaScript新手必看系列之预编译
前端·javascript
小哀21 小时前
🌸 入职写了一个月全栈next.js 感想
前端·后端·ai编程
用户010269271861 小时前
swift的inout的用法
前端
用户6600676685391 小时前
搞懂作用域链与闭包:JS底层逻辑变简单
前端·javascript