import React, { useCallback, useState ,useEffect} from 'react' import { Upload } from 'antd'; import ImgCrop from 'antd-img-crop'; import { RcFile } from 'antd/lib/upload'; import { CameraOutlined } from '@ant-design/icons'; import style from './index.less' /**上传图片单独组件*/ type Props={ callbakc:(fileData:{file:File,fileUrl:any})=>void } function UpImg(props:Props) { const [fileList, setFileList] = useState([]) const [previewVisible, setPreviewVisible] = useState(false) const [fileUrl, setFileUrl] = useState('') const [file, setFile] = useState({}) //文件上传获取 const fileChanage = useCallback((e: any) => { try { let file = e?.target?.files || e if (file) { setFile(file[0] || file) let reader = new FileReader() reader.readAsDataURL(file) reader.onload=function(e){ setFileUrl(this.result) } } } catch (err) { console.log(err) } }, []) //回调 useEffect(()=>{ if(fileUrl){ props.callbakc({file,fileUrl}) } },[file,fileUrl]) return
{ setFileList([...newFileList.fileList]) }} onPreview={(file: any) => { setPreviewVisible(true) setFileUrl(file.thumbUrl) }} >
} export default UpImg