Taro h5 图片预览支持放大缩小

本文介绍如何在Taro项目中利用react-photo-view库封装一个图片预览组件,以实现类似微信图片预览的效果,包括图片缩放功能。在iOS设备上存在长按和关闭预览事件冲突的问题,通过调整组件配置解决了冲突。
摘要由CSDN通过智能技术生成

使用Taro 开发一个图片列表的页面,需要支持图片预览,

原先以为是modal+image 即可,Taro.previewImage 在h5无法缩放图片,但产品说希望像微信预览图片一样,可以放大缩小

但Taro 没有支持的组件,网上搜索了下,找到 react-photo-view 插件

利用此插件封装了一下组件,贴上代码
 

interface IProps {
  visible: boolean;
  current: number;
  urls: string[];
  onClose: () => void;
  onChange: (arg: number) => void;
  photoClosable?: boolean;
}

const PreviewImage: React.FC<IProps> = ({
  visible,
  current,
  urls,
  onClose,
  onChange,
  photoClosable = false,
  ...rest
}) => {
  return (
    <PhotoProvider {...rest}>
      <PhotoSlider
        images={urls.map((item) => ({ src: item }))}
        photoClosable={photoClosable}
        visible={visible}
        onClose={onClose}
        index={current}
        onIndexChange={onChange}
      />
    </PhotoProvider>
  );
};
export default PreviewImage;

但是存在问题,ios的长按和photoClosable的点击关闭预览事件冲突(和产品沟通,取消photoClosable这个,因为本身这个组件点击图片之外的区域和右上角「x」可以关闭)

使用如下

 <PreviewImage
          visible={isOpened}
          current={currentPic}
          urls={ImageList}
          onClose={() => setIsOpened(false)}
          onChange={(index) => setCurrentPic(index)}
        />

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值