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-11-13微信小程序如何封装接口域名?-icode9专业技术文章分享
- 2024-11-13如何在微信小程序中实现直传功能?-icode9专业技术文章分享
- 2024-11-13如何在小程序的地图组件中添加标记和文字?-icode9专业技术文章分享
- 2024-11-13在微信小程序的地图组件中如何实现自定义标记和气泡?-icode9专业技术文章分享
- 2024-11-01微信小程序教程:零基础入门到实战
- 2024-11-01微信小程序全栈教程:从入门到实践
- 2024-10-31微信小程序怎么实现关注公众号功能-icode9专业技术文章分享
- 2024-10-30微信小程序cover-view,支持bindtap吗-icode9专业技术文章分享
- 2024-10-30微信小程序的cover-image支持bindtap吗-icode9专业技术文章分享
- 2024-10-30微信小程序web-view怎么设置高度?-icode9专业技术文章分享