张延森 vor 3 Jahren
Ursprung
Commit
ec0aee88c7
1 geänderte Dateien mit 8 neuen und 2 gelöschten Zeilen
  1. 8
    2
      lib/widgets/Refresher.dart

+ 8
- 2
lib/widgets/Refresher.dart Datei anzeigen

@@ -5,14 +5,16 @@ import 'package:flutter/material.dart';
5 5
 class RefreshBuilder extends StatefulWidget {
6 6
   RefreshBuilder({
7 7
     Key? key,
8
+    this.autoRerender = true,
8 9
     required this.builder,
9 10
     required this.fetch,
10 11
     required this.useState,
11 12
     this.onError,
12 13
   }): super(key: key);
13 14
 
15
+  bool autoRerender;
14 16
   Future Function(Map param) fetch;
15
-  Function({PagedResult state, void Function(VoidCallback) setState}) useState;
17
+  Function({PagedResult state}) useState;
16 18
   Function? onError;
17 19
 
18 20
   Widget Function({
@@ -38,7 +40,11 @@ class _RefresherState extends State<RefreshBuilder> {
38 40
   Future fetchData() {
39 41
     return Future.value(widget.fetch({ "pageNum": 1 }).then((res) {
40 42
       final pagedResult = PagedResult.fromJson(res);
41
-      widget.useState(state: pagedResult, setState: setState);
43
+      widget.useState(state: pagedResult);
44
+
45
+      if (widget.autoRerender) {
46
+        setState(() {});
47
+      }
42 48
     }).catchError((err) {
43 49
       print(err);
44 50
       if (null != widget.onError) {