当前位置: 首页 > 知识库问答 >
问题:

react.js - react中使用marked.js插件无法实现图片放大预览问题?

胥良平
2024-01-31

新公司项目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

共有1个答案

周弘盛
2024-01-31

在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程序设计有所帮助。