Слушайте, чтобы отменить событие для загрузки файла в Firefox - PullRequest
0 голосов
/ 20 ноября 2018

Я хочу удалить выбранный файл для загрузки, если я снова открою селектор файлов и нажму "Отмена".На данный момент это прекрасно работает в Chrome, но не в Firefox.

            <input
              type='file'
              id='uploadDocument'
              accept={ACCEPT_TYPES}
              onChange={(e: React.ChangeEvent<HTMLInputElement>) => {
                if (e.currentTarget.files){
                  props.documentChanged(e.currentTarget.files[0])
                }else{
                    props.fileSelectCanceled();
                    console.error('file selection cancelled');
                  }
                }
              }
            />

В идеале, когда e.currentTarget пуст, props.fileSelectCanceled(); удалит текущий файл из состояния.Я посмотрел несколько похожих ответов здесь, но ни одно решение не применимо.

1 Ответ

0 голосов
/ 20 ноября 2018

При очистке состояния на каждом onClick, файл будет назначен только для состояния, если выбрано.Следующий код добился цели:

           <input
              type='file'
              id='uploadDocument'
              accept={ACCEPT_TYPES}
              onChange={(e: React.ChangeEvent<HTMLInputElement>) => {
                  if (e.currentTarget.files){
                    props.documentChanged(e.currentTarget.files[0]);
                  }
                }
              }
              onClick={() => props.fileSelectCanceled()}
            />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...