Я очень плохо знаком с Флаттером и Дартом, но я пытаюсь получить данные из метода sqlite и передать их в качестве аргумента новому виджету. Я пытался использовать FutureBuilder, и это не помогло.
Я вызываю метод для загрузки данных, жду данных в .then () и внутри, затем я устанавливаю состояние переменной класса, которая будет позже присвоена виджету, но переменная _records всегда равна нулю, даже после setState.
Below is my code
int initScreen;
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
SharedPreferences prefs = await SharedPreferences.getInstance();
initScreen = await prefs.getInt("initScreen");
await prefs.setInt("initScreen", 1);
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
MyAppState createState() => MyAppState();
}
class MyAppState extends State{
List<Quarter> _records;
@override
void initState() {
_getRecords();
super.initState();
}
_getRecords() async {
await QuarterData().getQuarters().then((list){
setState((){
this. _records = list;
});
});
return list;
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'UI',
debugShowCheckedModeBanner: false,
home: initScreen == 0 || initScreen == null
? SpashScreen(this._records)
: QuartersHome(this._records)
);
}
}
Большое спасибо