react images uploading
3.1.7
新專案管理
npm install --save react-images-uploading
紗
yarn add react-images-uploading
您可以在這裡查看基本演示:
基本的
import React from 'react' ; import ImageUploading from 'react-images-uploading' ; export function App ( ) { const [ images , setImages ] = React . useState ( [ ] ) ; const maxNumber = 69 ; const onChange = ( imageList , addUpdateIndex ) => { // data for submit console . log ( imageList , addUpdateIndex ) ; setImages ( imageList ) ; } ; return ( < div className = "App" > < ImageUploading multiple value = { images } onChange = { onChange } maxNumber = { maxNumber } dataURLKey = "data_url" > { ( { imageList , onImageUpload , onImageRemoveAll , onImageUpdate , onImageRemove , isDragging , dragProps , } ) => ( // write your building UI < div className = "upload__image-wrapper" > < button style = { isDragging ? { color : 'red' } : undefined } onClick = { onImageUpload } { ... dragProps } > Click or Drop here < / button > < button onClick = { onImageRemoveAll } > Remove all images < / button > { imageList . map ( ( image , index ) => ( < div key = { index } className = "image-item" > < img src = { image [ 'data_url' ] } alt = "" width = "100" / > < div className = "image-item__btn-wrapper" > < button onClick = { ( ) => onImageUpdate ( index ) } > Update < / button > < button onClick = { ( ) => onImageRemove ( index ) } > Remove < / button > < / div > < / div > ) ) } < / div > ) } < / ImageUploading > < / div > ) ; }
驗證
...
{ ( { imageList , onImageUpload , onImageRemoveAll , errors } ) => (
errors && < div >
{ errors . maxNumber && < span > Number of selected images exceed maxNumber < / span>}
{ errors . acceptType && < span > Your selected file type is not allow < / span>}
{ errors . maxFileSize && < span > Selected file size exceed maxFileSize < / span>}
{ errors . resolution && < span > Selected file is not match your desired resolution < / span>}
< / div >
) }
...
拖放
... { ( { imageList , dragProps , isDragging } ) => ( < div { ... dragProps } > { isDragging ? "Drop here please" : "Upload space" } { imageList . map ( ( image , index ) => ( < img key = { index } src = { image . data_url } / > ) ) } < / div > ) } ...
範圍 | 類型 | 選項 | 預設 | 描述 |
---|---|---|---|---|
價值 | 大批 | [] | 圖片列表 | |
改變時 | 功能 | (imageList, addUpdateIndex) => 無效 | 呼叫新增、更新或刪除操作時調用 | |
數據URL鍵 | 細繩 | 數據URL | 所選影像的base64分配到的自訂欄位名稱 | |
多種的 | 布林值 | 錯誤的 | 為多項選擇設定true | |
最大數量 | 數位 | 1000 | 如果模式 = multiple 使用者可以選擇的影像數量 | |
錯誤時 | 功能 | (錯誤,文件)=> void | 出現錯誤時調用 | |
接受類型 | 大批 | ['jpg'、'gif'、'png'] | [] | 要上傳的檔案副檔名 |
最大檔案大小 | 數位 | 最大圖像大小(位元組)及其用於驗證 | ||
解析度類型 | 細繩 | '絕對' | '少' | '更多' | '比率' | 用於具有提供的寬度和高度的圖像驗證 | |
解析度寬度 | 數位 | > 0 | ||
解析度高度 | 數位 | > 0 | ||
輸入屬性 | React.HTMLProps | |||
允許非圖像類型 | 布林值 | 錯誤的 | 用於上傳非圖像類型目的(例如txt、pdf、heic...) |
解析度類型
價值 | 描述 |
---|---|
絕對 | 影像的寬度 === 解析度寬度 && 影像的高度 === 解析度高度 |
比率 | (解析度寬度/解析度高度) ===(影像寬度/影像高度) |
較少的 | 影像的寬度 < 解析度寬度 && 影像的高度 < 解析度高度 |
更多的 | 影像的寬度 > 解析度寬度 && 影像的高度 > 解析度高度 |
範圍 | 類型 | 描述 |
---|---|---|
圖片列表 | 大批 | 要渲染的圖像列表。 |
圖片上傳 | 功能 | 單擊元素並觸發打開文件對話框時調用 |
onImageRemoveAll | 功能 | 刪除所有圖像時調用 |
影像更新時 | (更新索引:數字)=> 無效 | 在updateIndex 處更新映像時呼叫。 |
影像刪除時 | (deleteIndex: 數字 | 數字[]) => void | 刪除一張或清單影像時呼叫。 |
錯誤 | 目的 | 導出的驗證對象 |
拖曳道具 | 目的 | 用於拖放功能的原生元素道具 |
正在拖曳 | 布林值 | 如果正在拖曳圖像,則為“true” |
感謝這些優秀的人(表情符號鍵):
烏托安266 ? ? | 大衛阮 ? ? | 德克 ? ? ? | 艾薩克·馬塞魯卡 |
該項目遵循所有貢獻者規範。歡迎任何形式的貢獻!