Как отменить загрузку файла при нажатии кнопки в reactjs?

Я хочу отменить загрузку файлов при нажатии кнопки отмены.

Что я пытаюсь сделать?

Я загружаю файлы, отправляя запрос на сервер, который показывает индикатор выполнения в зависимости от размера загруженного файла. Теперь, если пользователь нажимает кнопку отмены, он должен прекратить загрузку файлов. Я не знаю, как отменить запрос. У меня установлено состояние load_cancel, которое устанавливается в значение true при нажатии кнопки отмены на методе componentwillunmount. Состояние load_cancel установлено в значение false.

Ниже приведен код,

this.state {
    load_cancel: false,};

componentDidMount() {
    if (this.props.item) {
        this.load_item_data();
    }
}

on_load_cancel = () => {this.setState({load_cancel: true;});

load_item_data = () => {
    const props = this.props;
    this.file_download_status = {};
    if (this.on_item_changed) {
        this.on_item_changed();
    }
    const item_changed = new Promise((resolve) => { this.on_item_changed = 
    resolve; });
    const abort_loading = Promise.race([item_changed, this.unmount]);

    item.load(props.item.id, gl, this.update_download_progress, 
    abort_loading).then((result) => {
        this.files = result.files;
        this.setState({
            item_download_done: true,
        });
        client.add_item_view(props.item.id, abort_loading);
    });

    {props.item &&
                <ProgressBar
                    on_load_cancel = {this.load_cancel}
                />}

Ниже находится кнопка отмены в компоненте Progressbar,

<button onClick = {props.on_load_cancel}>Cancel</button>

Может ли кто-нибудь помочь мне с этим? Спасибо.

можешь выложить полный файл? кажется, что некоторые важные биты отсутствуют

jsdeveloper 11.03.2019 21:36

не могу выложить полный файл :(

stackoverflow_user 11.03.2019 21:45

что вы используете для отправки запроса ajax? если это библиотека, посмотрите в документации, как ее отменить, например stackoverflow.com/questions/38329209/…

Eric Hasselbring 11.03.2019 22:23
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
331
0

Другие вопросы по теме