loader 0.0.1 loader: ^0.0.1 copied to clipboard
helps with loading required data
LoadingMixin #
initiate required data before doing a full rebuild
class DataRow extends StatefulWidget {
final int index;
DataRow({Key key, this.index}) : super(key: key);
@override
_DataRowState createState() => _DataRowState();
}
class _DataRowState extends State<DataRow> with LoadingMixin<DataRow>{
String data;
@override
Future<void> load() async{
data = await DataProvider.getData();
}
@override
Widget build(BuildContext context) {
if(loading) return Container();
if(hasError) return Text(error);
return Text(data);
}
}
Loader #
an alternative to FutureBuilder
class Banner extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
child: Center(
child: Loader<String>(
load: () async{
return await retriveBannerText();
},
builder: (context, value){
return Text(value);
},
errorBuilder: (error) => Text(error, style: TextStyle(color: Colors.red),),
),
),
);
}
}