react images uploading
3.1.7
npm
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 > ) } ...
パラメータ | タイプ | オプション | デフォルト | 説明 |
---|---|---|---|---|
価値 | 配列 | [] | 画像一覧 | |
onChange | 関数 | (imageList, addUpdateIndex) => void | 追加、更新、または削除アクションが呼び出されるときに呼び出されます | |
データURLキー | 弦 | データURL | 選択した画像のbase64が割り当てられるカスタマイズされたフィールド名 | |
複数 | ブール値 | 間違い | 複数選択する場合はtrue を設定します | |
最大番号 | 番号 | 1000 | モード = multiple の場合にユーザーが選択できる画像の数 | |
onError | 関数 | (エラー、ファイル) => 無効 | エラーがあるときに呼び出されます | |
acceptType | 配列 | ['jpg'、'gif'、'png'】 | [] | アップロードするファイル拡張子 |
maxFileSize | 番号 | 最大画像サイズ (バイト) および検証に使用されます。 | ||
解像度の種類 | 弦 | '絶対' | '少ない' | 'もっと' | '比率' | 指定された幅と高さで画像の検証に使用する | |
解像度幅 | 番号 | > 0 | ||
解像度高さ | 番号 | > 0 | ||
inputProps | React.HTMLProps | |||
非画像タイプを許可する | ブール値 | 間違い | 非画像タイプの目的 (例: txt、pdf、heic など) をアップロードするために使用します。 |
解像度の種類
価値 | 説明 |
---|---|
絶対 | 画像の幅 === 解像度幅 && 画像の高さ === 解像度高さ |
比率 | (解像度幅 / 解像度高さ) === (画像幅 / 画像高さ) |
少ない | 画像の幅 < 解像度幅 && 画像の高さ < 解像度高さ |
もっと | 画像の幅 > 解像度幅 && 画像の高さ > 解像度高さ |
パラメータ | タイプ | 説明 |
---|---|---|
画像一覧 | 配列 | レンダリングする画像のリスト。 |
onImageUpload | 関数 | 要素がクリックされると呼び出され、ファイル ダイアログを開くトリガーになります。 |
画像上すべて削除 | 関数 | すべての画像を削除するときに呼び出されます |
onImageUpdate | (updateIndex: 数値) => void | updateIndex でイメージを更新するときに呼び出されます。 |
onImageRemove | (deleteIndex: 数値 | 数値[]) => 無効 | 1 つまたはリストのイメージを削除するときに呼び出されます。 |
エラー | 物体 | エクスポートされた検証対象 |
ドラッグプロップ | 物体 | ドラッグ アンド ドロップ機能のネイティブ要素の小道具 |
ドラッグ中です | ブール値 | 画像がドラッグされている場合は「true」 |
これらの素晴らしい人々に感謝します (絵文字キー):
vutoan266 ? ? | デビッド・グエン ? ? | DK ? ? ? | アイザック・マセルカ |
このプロジェクトは、全員参加者の仕様に従っています。あらゆる種類の貢献を歓迎します!