Я работаю с react-dropzone-uploader. Это отличный маленький компонент, но я новичок, чтобы отреагировать, и документация «немного» легковесна. У каждого файла есть «виджет» в компоненте загрузчика, который показывает статус загрузки. Как только файл будет завершен, я хочу - после небольшой задержки - изменить виджет, который представляет собой поле, на простое текстовое сообщение, в котором указано имя файла и загрузка этого файла завершена. Я обнаружил, как я могу полностью удалить виджет, используя это:
const handleChangeStatus = (file, status) => {
if (status === 'done') {
setTimeout(file.remove(), 5000);
}
}
И это удаляет весь виджет. Но я хочу заменить виджет простым текстом, который гласит:
FilenameXYZ загрузка завершена.
Весь компонент выглядит следующим образом:
import React from 'react';
import ReactDOM from 'react-dom';
import 'react-dropzone-uploader/dist/styles.css'
import Dropzone from 'react-dropzone-uploader'
const Standard = () => {
const getUploadParams = () => {
return {
url: $('#jsVars').attr('data-url'),
}
}
const handleChangeStatus = (file, status) => {
console.log(status, file)
if (status === 'done') {
setTimeout(file.remove(), 5000);
}
}
const handleSubmit = (files, allFiles) => {
console.log(files.map(f => f.meta))
allFiles.forEach(f => f.remove())
}
return (
<Dropzone
getUploadParams={getUploadParams}
onChangeStatus={handleChangeStatus}
onSubmit={handleSubmit}
//accept="image/*"
//inputContent={(files, extra) => (extra.reject ? 'Image files only' : 'Drag Files or click to browse')}
submitButtonContent="CLEAR"
styles={{
dropzoneReject: { borderColor: 'red', backgroundColor: '#DAA' },
//dropzone: { minHeight: 1000, maxHeight: 1000 } ,
}}
/>
)
}
//<Standard />
export default Standard;
if (document.getElementById('example')) {
ReactDOM.render(<Standard />, document.getElementById('standard'));
}