@override
void initState() {
final Future<bool> is_initialized = IsInitialized();
if (is_initialized == false) {
GenerateDefaultPreferences();
Navigator.push(context, MaterialPageRoute(builder: (context) => LanguageSelection())); //?
} else {
SynchronizeDLIfSet();
}
}
Это в моем виджете без сохранения состояния. Как я могу перемещаться внутри initState() во Flutter?
Я пытаюсь заставить его перейти к LanguageSelection(), если приложение не было инициализировано раньше.
@override
void initState() {
super.initState();
final Future<bool> is_initialized = IsInitialized();
is_initialized.then((value) {
if (!value) {
GenerateDefaultPreferences();
WidgetsBinding.instance.addPostFrameCallback((_) {
Navigator.push(context, MaterialPageRoute(builder: (context) => LanguageSelection()));
});
} else {
SynchronizeDLIfSet();
}
});
}
Вы не можете использовать метод initState в виджете без сохранения состояния.
initState() — это метод, который вызывается, когда объект для вашего виджета с состоянием создается и вставляется в дерево виджетов. По сути, это точка входа для виджетов с отслеживанием состояния. Подводя итог, ваш виджет должен иметь состояние.
Дальнейшее объяснение и пример: https://www.geeksforgeeks.org/flutter-initstate/