Flutter_riverpod:So verwenden Sie FutureProvider.autoDisopse.familyAndroid

Forum für diejenigen, die für Android programmieren
Guest
 Flutter_riverpod:So verwenden Sie FutureProvider.autoDisopse.family

Post by Guest »

Wenn Sie auf Seite A auf die Schaltfläche klicken, gelangen Sie zur Dateiauswahlseite, auf der ein Dateipfad ausgewählt wird. Anschließend wird zu Seite A zurückgekehrt und der Dateipfad ermittelt. Der Pfad muss auf den Server hochgeladen werden. Auf der Seite wird nur der Upload-Status durch eine Toast-Eingabeaufforderung angezeigt. Wenn dieser FutureProvider von der Seite nicht überwacht wird, wird er automatisch verworfen, was zu einem Fehler „cancel by user“ und einem Abbruch des Uploads führt. Wie kann FutureProvider mit der Familie kombiniert werden, um die Upload-Logik zu implementieren?
Darüber hinaus ist der Pfadwert dynamisch. Wie können wir sicherstellen, dass der an ref.watch(uploadProvider(filePath)) und ref.read(uploadProvider(filePath).future) übergebene Dateipfad derselbe ist? Müssen wir eine Mitgliedsvariable definieren, um den Dateipfad aufzuzeichnen? Die Ausführungszeit von watch ist jedoch früher als die von read, und der zu unterschiedlichen Zeiten erhaltene Wert von filePath kann unterschiedlich sein.
Ich hoffe, Lösungen für das Problem im Szenario mit FutureProvider zu finden .autoDispose.family und einige detaillierte Anwendungsbeispiele. Vielen Dank für Ihre Hilfe.

Code: Select all

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);
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post