import React, { useCallback, useState } from 'react' import styles from './index.module.scss' import { baseURL } from '@/utils/http' import imgLoding from '@/assets/img/loading.gif' import imgErr from '@/assets/img/IMGerror.png' import { EyeOutlined } from '@ant-design/icons' import store from '@/store' import { Image } from 'antd-mobile' type Props = { width?: number | string height?: number | string src: string srcBig?: string noLook?: boolean offline?: boolean } function ImageLazy({ width = 100, height = 100, src, srcBig, noLook, offline = false }: Props) { // 默认不能预览图片,加载成功之后能预览 const [lookImg, setLookImg] = useState(false) // 图片加载完成 const onLoad = useCallback(() => { setLookImg(true) }, []) // 点击预览图片 const lookBigImg = useCallback(() => { store.dispatch({ type: 'layout/lookBigImg', payload: { url: offline ? src : srcBig ? baseURL + srcBig : baseURL + src, show: true } }) }, [offline, src, srcBig]) return (
} fallback={} fit='cover' /> {/* 图片预览 */} {noLook || !lookImg ? null : (
 
预览
)}
) } const MemoImageLazy = React.memo(ImageLazy) export default MemoImageLazy