当前位置:   article > 正文

Taro支持富文本(微信小程序)图片样式问题及可点击事件_小程序富文本里面的点击事件

小程序富文本里面的点击事件

react提供的dangerouslySetInnerHTML即可

这个属性相比于其他方案的优势在于:1. 支持修改富文本样式  2. Taro官方属性,比插件靠谱

使用这个属性存在两个问题需要解决

1、需要解决图片样式错乱问题
2、图片点击可放大

tips:

正常方式无法绑定事件,样式设置不生效

  1. import { View, Image } from '@tarojs/components';
  2. import { useLayoutEffect } from 'react';
  3. import styles from './index.module.scss';
  4. import Taro from '@tarojs/taro';
  5. const Parse = ({ imgClick, node }) => {
  6. useLayoutEffect(() => {
  7. // 修改图片行内默认样式
  8. (Taro as any).options.html.transformElement = el => {
  9. if (el.nodeName === 'image') {
  10. el.setAttribute('mode', 'widthFix');
  11. // 图片增加点击事件
  12. el.__handlers.tap = [() =>{
  13. imgClick(el.props.src)
  14. }]
  15. }
  16. return el;
  17. };
  18. }, [node]);
  19. return (
  20. <View className={styles.parse}>
  21. <View dangerouslySetInnerHTML={{ __html: node }}></View>
  22. </View>
  23. );
  24. };
  25. export default Parse;
  1. .parse image{
  2. width: 100%!important;
  3. }
  1. import Parse from './components/parse/index'
  2. // 点击图片放大
  3. const imgClick =(e)=>{
  4. console.log(e,'点击放大')
  5. if (!e) return false;
  6. Taro.previewImage({
  7. current: e,
  8. urls: [e]
  9. });
  10. }
  11. <Parse imgClick={imgClick} node={content} />

 

真机测试没有问题 

以上会丢失功能标签样式问题,建议使用插件
mp-html插件,原生写法, 不支持taro,可以使用原生混用的写法引入
  Taro 文档

   小程序富文本组件

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/489783
推荐阅读
相关标签
  

闽ICP备14008679号