How to get data from the FutureProvider in flutter
FutureProvider
exposes the result of the Future
returned by builder
to its descendants.
As such, using the following FutureProvider
:
FutureProvider<int>( initialData: 0, builder: (_) => Future.value(42), child: ...)
it is possible to obtain the current value through:
Provider.of<int>(context)
or:
Consumer<int>( builder: (context, value, __) { return Text(value.toString()); });
In my example I used the create parameter of FutureProvider to request the API, then then I used Consumer to get the results of the API.
FutureProvider( create: (_) => peopleService.getAllSurvivor(), child: Consumer<List<Survivor>>(builder: (context, survivors, _) { return survivors == null ? Center(child: CircularProgressIndicator()) : ListView.builder( itemCount: survivors.length, itemBuilder: (context, index) { var survivor = survivors[index]; return ListTile( title: Text(survivor.name), subtitle: Text(survivor.gender), leading: Icon(Icons.perm_identity), ); }, ); })));