Ant-design: Компонент загрузки: проверьте наличие проблем перед загрузкой перед загрузкой

Созданный на 29 дек. 2017  ·  7Комментарии  ·  Источник: ant-design/ant-design

Версия

3.0.3

Окружающая обстановка

win7, хром63.0.3239.84

Ссылка для воспроизведения

https://codepen.io/LynnHg/pen/YYZdRV

Действия по воспроизведению

handleBeforeUpload (файл) {
const sizeOk = file.size <1024 * 300;
const typeOk =
file.type === 'image / jpeg' ||
file.type === 'image / png' ||
file.type === 'image / bmp' ||
file.type === 'image / gif';

if (!typeOk) {
  message.error('照片格式有误!');
} else {
  if (!sizeOk) {
    message.error('照片大小超过300K!');
  }
}

return sizeOk && typeOk;

}

Что ожидается?

При загрузке фотографий в неправильном формате выводится сообщение, что формат неправильный, но никакого эффекта не отображается

Что на самом деле происходит?

При загрузке фотографий в неправильном формате отображается сообщение о неправильном формате, но в интерфейсе отображается «Загрузка файла».

Inactive 🐛 Bug

Самый полезный комментарий

beforeUpload (файл) {
const maxFileSize = 2;
const isLtMax = размер файла / 1024/1024 <maxFileSize;

return new Promise((resolve, reject) => {
  if(!isLtMax) {
    reject(file);
  } else {
    resolve(file);
  }
});

};
Таким образом вы предотвратите добавление файла с ошибкой в ​​список файлов.

Все 7 Комментарий

Лучше писать проблему / комментарий на английском, чтобы больше людей вас понимали.
А это значит, что больше людей могут помочь вам или получить пользу от вашего вопроса / комментария.
См .: https://github.com/ant-design/ant-design/issues/4897

Это связано с тем, что существует проблема с методом обратного вызова onChange , его нельзя записать так

Я думаю, что это проблема. Когда beforeUpload retrun false, file объект в обратном вызове onChange должен дать право status .

и если использовать Promise, reject не вызовет onChange , но return false сделает!

if (!typeOk) {
   message.error('照片格式有误!');
   return false
} 
if (!sizeOk) {
    message.error('照片大小超过300K!');
    return false
}
return true;

Дубликат № 8020

beforeUpload (файл) {
const maxFileSize = 2;
const isLtMax = размер файла / 1024/1024 <maxFileSize;

return new Promise((resolve, reject) => {
  if(!isLtMax) {
    reject(file);
  } else {
    resolve(file);
  }
});

};
Таким образом вы предотвратите добавление файла с ошибкой в ​​список файлов.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги