React之使用React-viewer实现大图预览

28 篇文章 0 订阅

一、插件介绍

该插件是根据viewJs封装的react可以使用:

viewJs:

二、代码封装

(1)子组件封装

import React, { FC, useState, useCallback, memo } from 'react';
import Viewer from 'react-viewer';

export interface ImgProps {
  imgUrl: string;
}
const PictureView: FC<ImgProps> = memo(({ imgUrl }) => {
  const [visible, setVisible] = useState(false);
  const handleClick = useCallback(() => {
    setVisible(true);
  }, []);
  const handleClose = useCallback(() => {
    setVisible(false);
  }, []);
  return (
    <div>
    //我在这里的设计思想:
    // 1. 首先页面会渲染一张图片
    // 2. 点击小图之后显示大图
    // 也可以将这里的图片换成button实现点击,同时可以设置两张图片不一样
      <a href="javascript:;" onClick={handleClick}>
        <img src={imgUrl} />
      </a>
      <Viewer
        visible={visible}
        onClose={handleClose}
        images={[{ src: imgUrl, alt: '' }]}
      />
    </div>
  );
});
PictureView.displayName = 'PictureView';
export default PictureView;

(2)父组件调用

<div className={styles['compare-list__pic']}>
 <PictureView imgUrl={inputImageUrl}></PictureView>
</div>

三、react-viewer插件api

  • changeable={false} 设置图片上一张下一张,默认为true
  • zoomable={false} 设置图片是否放大,默认为true
  • showTotal={false} 是否显示图片总数,false则不显示
  • noToolbar={true}是否显示工具栏,ture不显示
  • noFooter={true}是否显示底部状态,true不显示
  • disableMouseZoom={true} 是否使用鼠标移动缩放,为true不显示
  • scalable,默认为true,设置是否翻转
  • defaultSize={{ width: 600, height: 700, }}设置默认宽度和高度
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值