Taro支持富文本(微信小程序)完美解决
2021/11/26 14:11:33
本文主要是介绍Taro支持富文本(微信小程序)完美解决,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
需求:先说下需求,就是我们需要做活动页面,活动页面有个规则,规则的内容由B端后台配置海报页。页面如下
实现:
需要用到dangerouslySetInnerHTML属性即可,这个属性相比于其他方案的优势在于:1. 支持修改富文本样式 2. Taro官方属性,比插件靠谱
核心代码:index.tsx
// 修改图片行内默认样式 (Taro as any).options.html.transformElement = (el) => { if (el.nodeName === 'image') { el.setAttribute('mode', 'widthFix'); } return el; }; return ( <View className='content'> <View className='text' dangerouslySetInnerHTML={{ __html: rule }} /> </View> );
如果你的需求也是传图片,记得一定要修改mode,因为它默认是mode="scaleToFill", 这会导致缩放,不能达到预期效果。所以下面代码一定要加。文末有所有代码
// 修改图片行内默认样式 (Taro as any).options.html.transformElement = (el) => { if (el.nodeName === 'image') { el.setAttribute('mode', 'widthFix'); } return el; };
来看成果:
完整代码:
index.ts
import { getUser, IglobalUser } from '@/utils/getUser'; import { View } from '@tarojs/components'; import Taro, { useRouter } from '@tarojs/taro'; import { useEffect, useState } from 'react'; import { getActivityRule } from '@/services/activity.service'; import './index.scss'; const Rule = () => { const router = useRouter(); const activityCode: string = router.params.activity_code || ''; const [rule, setRule] = useState(''); // 获取规则 const getRule = async () => { try { const globalUser: IglobalUser = await getUser(); const { userId } = globalUser; const res = await getActivityRule({ activityCode, userId }); if (res.status === 0) { setRule(res.result); } } catch (error) {} }; useEffect(() => { getRule(); }, []); // 修改图片行内默认样式 (Taro as any).options.html.transformElement = (el) => { if (el.nodeName === 'image') { el.setAttribute('mode', 'widthFix'); } return el; }; return ( <View className='content'> <View className='text' dangerouslySetInnerHTML={{ __html: rule }} /> </View> ); }; export default Rule;
index.scss
.content { .text { .h5-p { .h5-img { width: 100%; overflow: scroll; display: block; } } } }
这篇关于Taro支持富文本(微信小程序)完美解决的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-20微信小程序开发入门指南
- 2024-12-20小程序 createCameraContext() 怎么实现识别条形码功能?-icode9专业技术文章分享
- 2024-11-22微信小程序的接口信息py可以抓到吗?-icode9专业技术文章分享
- 2024-11-22怎样解析出微信小程序二维码带的参数?-icode9专业技术文章分享
- 2024-11-22微信小程序二维码怎样解析成链接?-icode9专业技术文章分享
- 2024-11-22微信小程序接口地址的域名需要怎么设置?-icode9专业技术文章分享
- 2024-11-22微信小程序的业务域名有什么作用-icode9专业技术文章分享
- 2024-11-22微信小程序 image有类似html5的onload吗?-icode9专业技术文章分享
- 2024-11-22微信小程序中怎么实现文本内容超出行数后显示省略号?-icode9专业技术文章分享
- 2024-11-22微信小程序怎么实现分享样式定制和图片定制功能?-icode9专业技术文章分享