I'm having touble displaying the results of a Set<String>
. I seem to get the results from Future
but they don't print on screen. Here is my code:
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
class SavedForms extends StatefulWidget {
@override
State<StatefulWidget> createState() => _SavedForms();
}
class _SavedForms extends State<SavedForms>{
List<Card> myForms = [];
@override
void initState(){
getKeys();
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: <Widget>[
...myForms,
],
),
);
}
getKeys() {
getData().then((result) {
result.forEach((element) {
print("displaying ${element.toString()}");
setState(() {
myForms.add(new Card(
child: Text(element.toString()),
));
});
});
});
}
Future<Set<String>> getData() async {
final prefs = await SharedPreferences.getInstance();
final value = prefs.getKeys();
print("got ${value.length} results");
return value;
}
}
The prints result show data being fetched correctly (testElement
should be diplayed in screen inside a Card
):
I/flutter ( 3411): got 1 results
I/flutter ( 3411): displaying testElement