Flutter_riverpod: как использовать FutureProvider.autoDisopse.familyAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Flutter_riverpod: как использовать FutureProvider.autoDisopse.family

Сообщение Anonymous »

При нажатии кнопки на странице А открывается страница выбора файла, где выбирается путь к файлу. Затем он возвращается на страницу A и получает путь к файлу. Путь необходимо загрузить на сервер. На странице во всплывающем сообщении отображается только статус загрузки. Если страница не отслеживает этот FutureProvider, он будет автоматически удален, что приведет к ошибке отмены пользователем и отмене загрузки. Как можно объединить FutureProvider с семейством для реализации логики загрузки?
Более того, значение пути является динамическим. Как мы можем гарантировать, что filePath, передаваемый в ref.watch(uploadProvider(filePath)) и ref.read(uploadProvider(filePath).future), один и тот же? Нужно ли нам определять переменную-член для записи пути к файлу? Однако время выполнения просмотра раньше, чем время чтения, и значение filePath, полученное в разное время, может быть разным.
надеемся получить решение проблемы в сценарии с участием FutureProvider .autoDispose.family и несколько подробных примеров использования. Спасибо за помощь.
final uploadProvider =
FutureProvider.autoDispose.family((ref, filePath) async {
Logger.instance.d("import start:$filePath");
final cancelToken = MyCancelToken();
ref.onDispose(() {
// Logger.instance.d("upload cancel token onCancel");
// cancelToken.cancel();
});
final noteRepository = ref.watch(noteRepositoryProvider);
final retImport = await noteRepository.upload(filePath, cancelToken);
return retImport;
});

_handleUploadPressed() async {
var ret = await ref.read(uploadProvider(selectedFilePath).future);
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... pse-family
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»