SimpleFutureBuilder<T> constructor
SimpleFutureBuilder<T> ({
- Key? key,
- required Future<
T> future, - required DataBuilder<
T?> builder, - WidgetBuilder? nullBuilder,
- WidgetBuilder? loading,
- ErrorBuilder? error,
- T? initialData,
Implementation
SimpleFutureBuilder({
Key? key,
required Future<T> future,
required DataBuilder<T?> builder,
WidgetBuilder? nullBuilder,
WidgetBuilder? loading,
ErrorBuilder? error,
T? initialData,
}) : super(
key: key,
initialData: initialData,
future: future,
builder: (context, snapshot) {
late Widget widget;
switch (snapshot.connectionState) {
case ConnectionState.none:
case ConnectionState.waiting:
if (loading != null) {
widget = loading(context);
} else {
widget = Container();
}
break;
case ConnectionState.active:
case ConnectionState.done:
if (snapshot.hasError) {
if (error != null) {
widget = error(context, snapshot.error);
} else {
widget = Text('${snapshot.error}');
}
} else {
if (snapshot.hasData) {
widget = builder(context, snapshot.data);
} else {
if (nullBuilder != null) {
widget = nullBuilder(context);
} else {
widget = builder(context, snapshot.data);
}
}
}
break;
}
return widget;
},
);