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

相关推荐
凌览4 分钟前
Claude半个月崩7次!算力不够自己造,强制实名制封
前端·后端
sTone8737518 分钟前
跨端框架通信机制全解析:从 URL Schema 到 JSI 到 Platform Channel
android·前端
蜡台19 分钟前
vue params传参刷新网页数据丢失解决方法
前端·javascript·vue.js
sTone8737519 分钟前
Java 注解完全指南:从 "这是什么" 到 "自己写一个"
android·前端
文心快码BaiduComate25 分钟前
里程碑突破 | 文心快码中标国家开发银行代码研发助手项目
前端·后端·架构
霍理迪34 分钟前
axios的封装
前端
夜焱辰35 分钟前
CreatorWeave:一个本地优先的浏览器 AI 创作工作空间
前端·agent
wscqs37 分钟前
Superpowers 与 everything-claude-code 与 ui-ux-pro-max-skill 这些怎么合并起来一起用
前端
大转转FE40 分钟前
转转前端周刊第192期: 财务数仓 Claude AI Coding 应用实战
前端·人工智能
weixin_471383031 小时前
React Flow + Zustand 搭建工作流编排工作台
前端·react.js·前端框架