Не удается установить состояние внутри onSendProgress в библиотеке Dio

#flutter #progress-bar #multipartform-data #dio

Вопрос:

Я делаю это, чтобы загрузить файл

 dio.post(
  url,
  data: data,            
  onSendProgress: (int sent, int total) {
    print(sent / total); // works
    setState(() {
      _sendProgress = sent / total; // does not work
    });
  }
);
 

Инструкция print выводит прогресс, но переменная состояния _sendProgress обновляется только при загрузке файла (она обновляется до 1).

Знаете ли вы, как обойти это или почему это происходит?

Спасибо

Комментарии:

1. есть какие-нибудь новости, братан?

2. @ХабибМхамади нет

Ответ №1:

Похоже, что ваша _sendProgress переменная целочисленна, и из-за этого ваш результат деления округляется до 0 тех пор, пока вы не 1 сможете поделиться своими кодами с другими частями.

Комментарии:

1. Что происходит, когда вы помещаете печать в состояние setstate?

2. внутри setState print(_sendProgress) выводит правильное значение

3. Я проверю это и свяжусь с вами.