react images uploading
3.1.7
mpn
npm install --save react-images-uploading
hilo
yarn add react-images-uploading
Puede consultar la demostración básica aquí:
Básico
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 > ) ; }
Validación
...
{ ( { 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 >
) }
...
Arrastrar y soltar
... { ( { imageList , dragProps , isDragging } ) => ( < div { ... dragProps } > { isDragging ? "Drop here please" : "Upload space" } { imageList . map ( ( image , index ) => ( < img key = { index } src = { image . data_url } / > ) ) } < / div > ) } ...
parámetro | tipo | opciones | por defecto | descripción |
---|---|---|---|---|
valor | formación | [] | Lista de imágenes | |
en cambio | función | (imageList, addUpdateIndex) => vacío | Se llama cuando se llama a la acción agregar, actualizar o eliminar | |
datosURLClave | cadena | URL de datos | Nombre de campo personalizado al que se asigna base64 de la imagen seleccionada | |
múltiple | booleano | FALSO | Establecer true para múltiples selecciones | |
númeromax | número | 1000 | Número de imágenes que el usuario puede seleccionar si modo = multiple | |
enError | función | (errores, archivos) => nulo | Llamado cuando tiene errores. | |
aceptar tipo | formación | ['jpg', 'gif', 'png'] | [] | Las extensiones de archivo a cargar |
maxFileSize | número | Tamaño máximo de imagen (Byte) y se utiliza en la validación. | ||
tipo de resolución | cadena | 'absoluto' | 'menos' | 'más' | 'relación' | Uso para la validación de imágenes con el ancho y alto proporcionados | |
resoluciónAncho | número | > 0 | ||
resoluciónAltura | número | > 0 | ||
accesorios de entrada | React.HTMLProps | |||
permitirNonImageType | booleano | FALSO | Uso para cargar fines que no sean de tipo imagen (por ejemplo, txt, pdf, heic, ...) |
tipo de resolución
valor | descripción |
---|---|
absoluto | ancho de la imagen === resoluciónAncho && alto de la imagen === resoluciónAlto |
relación | (ancho de resolución / alto de resolución) === (ancho de imagen / alto de imagen) |
menos | ancho de la imagen |
más | ancho de la imagen > resoluciónAncho && alto de la imagen > resoluciónAltura |
parámetro | tipo | descripción |
---|---|---|
lista de imágenes | formación | Lista de imágenes para renderizar. |
enImageUpload | función | Se llama cuando se hace clic en un elemento y se activa para abrir un cuadro de diálogo de archivo. |
enImageRemoveAll | función | Se llama al eliminar todas las imágenes. |
enImageUpdate | (updateIndex: número) => nulo | Se llama al actualizar una imagen en updateIndex . |
enImagenEliminar | (deleteIndex: número | número[]) => nulo | Se llama al eliminar una imagen o una lista. |
errores | objeto | Objeto exportado de validación |
arrastrar accesorios | objeto | Accesorios de elementos nativos para la función de arrastrar y soltar |
está arrastrando | booleano | "verdadero" si se arrastra una imagen |
Gracias a estas maravillosas personas (tecla emoji):
vutoan266 ? ? | David Nguyen ? ? | NS ? ? ? | Isaac Maseruka |
Este proyecto sigue la especificación de todos los contribuyentes. ¡Se aceptan aportes de cualquier tipo!