|
@@ -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) {
|