新公司项目react函数式组件中,使用marked.js插件将服务端返回的Markdown字符串转化成html(使用<div dangerouslySetInnerHTML = {{_html:htmlText}})渲染到上级组件中。
问题:在返回的img图片渲染到页面时,想实现点击图片预览的功能。尝试了两种方案不可行,急求大神指导~
本人查阅了两种结局方案:
1、参考http://www.taodudu.cc/news/show-4355278.html?action=onClick
没有成功。不确定点击事件在函数式子组件中何时定义
2、因为项目使用了antd插件,想将其中的图片img标签换成antd图片组件Image就可以展示加预览。但是在htmlText处理了到<div dangerouslySetInnerHTML = {{_html:htmlText}})无效,会自动变成img
在React中,如果你正在使用dangerouslySetInnerHTML
来插入Markdown转换后的HTML,那么直接在这个HTML中添加事件处理器可能会遇到问题,因为dangerouslySetInnerHTML
不会将React元素转换为DOM元素。
一个可能的解决方案是使用react-interactivity
库,它允许你处理像点击和悬停这样的交互事件。首先,你需要安装这个库:
npm install react-interactivity
然后,你可以使用Interactivity
组件来包装你的图片,并添加一个点击事件处理器:
import React from 'react';import Interactivity from 'react-interactivity';function ImagePreviewer(props) { return ( <Interactivity event="click" handler={props.onClick}> <img src={props.src} alt={props.alt} /> </Interactivity> );}
在这个例子中,event
属性是你想要监听的事件(在这个例子中是"click"),而handler
属性则是当该事件被触发时调用的函数。然后你可以像这样使用你的ImagePreviewer
组件:
<ImagePreviewer src="your-image-source" alt="image description" onClick={this.handleImageClick} />
在这个例子中,当图片被点击时,handleImageClick
函数将被调用。
注意,这个解决方案需要你能够控制并信任你正在渲染的HTML。如果你不能保证HTML的安全性,那么使用dangerouslySetInnerHTML
可能会导致XSS攻击。
本文向大家介绍vue实现图片预览组件封装与使用,包括了vue实现图片预览组件封装与使用的使用技巧和注意事项,需要的朋友参考一下 这是移动端使用vue框架与mint-ui实现的父用子之间的通信实现的图片预览的功能,在父组件中每一张图片都可以实现图片放大查看。 子组件 父组件 在全局样式global.css里面设置图片预览居中 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教
本文向大家介绍JS使用H5实现图片预览功能,包括了JS使用H5实现图片预览功能的使用技巧和注意事项,需要的朋友参考一下 JS使用H5实现上传图片预览的功能,以下是代码的实现: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
本文向大家介绍如何做图片预览,如何放大一个图片?相关面试题,主要包含被问及如何做图片预览,如何放大一个图片?时的应答技巧和注意事项,需要的朋友参考一下 https://blog.csdn.net/Bule_daze/article/details/79543690
本文向大家介绍jQuery图片特效插件Revealing实现拉伸放大,包括了jQuery图片特效插件Revealing实现拉伸放大的使用技巧和注意事项,需要的朋友参考一下 点击图片,图片拉伸放大显示,效果非常棒! 使用方法: 1、head区域引用文件 jquery.js,photorevealer.js,datouwang.css 2、在文件中加入<!-- 代码 开始 --><!-- 代码 结束
本文向大家介绍React+ajax+java实现上传图片并预览功能,包括了React+ajax+java实现上传图片并预览功能的使用技巧和注意事项,需要的朋友参考一下 之前有在网上找ajax上传图片的资料,大部分的人写得都是用jQuery,但是在这里用JQuery就大才小用了,所以我就自己写了,先上图。 由上图,首先点击上面的选择文件,在选择图片之后,将会自动上传图片到服务器,并且返回图片名字和图
本文向大家介绍js实现单击图片放大图片的方法,包括了js实现单击图片放大图片的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js实现单击图片放大图片的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的javascript程序设计有所帮助。