#flutter #exception #navigator
#трепетать #исключение #навигатор
Вопрос:
Когда я реализую код для страницы с заставкой и перехожу на экран входа в систему и создаю исключение, подобное этому «пакет:flutter/src/виджеты/навигатор.dart»: Неудачное утверждение: строка 5338 pos 12: «!_debugLocked»: неверно. функция, которую я объявил для навигации по странице, работает неправильно, но ошибки во время компиляции нет, ошибка отображается только во время выполнения. Я не знаю, как это решить, Пожалуйста, кто-нибудь поможет
import 'package:first_project_1/Screens/login.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; class ScreenSplash extends StatefulWidget { const ScreenSplash({Key? key}) : super(key: key); @override _ScreenSplashState createState() =gt; _ScreenSplashState(); } class _ScreenSplashState extends Statelt;ScreenSplashgt; { @override void initState() { // TODO: implement initState super.initState(); gotoLogin(context); } @override void didChangeDependencies() { // TODO: implement didChangeDependencies super.didChangeDependencies(); } @override Widget build(BuildContext context) { return Scaffold( body: Center( child: Image.asset('assets/images/VDlogo.png',height: 150,), ), ); } @override void dispose() { // TODO: implement dispose super.dispose(); } Futurelt;voidgt; gotoLogin(BuildContext context) async { Future.delayed(Duration(seconds: 4),); Navigator.of(context).pushReplacement( MaterialPageRoute( builder: (ctx)=gt; ScreenLogin(), ), ); } }
Ответ №1:
Это потому Navigator.pushReplacement
, что это называется прямо в initState
. Ваш Future.delayed
не await
эд, поэтому он не ждет этих 4 секунд для нажатия.
Комментарии:
1. Можете ли вы сказать мне, какие изменения я внес, чтобы устранить эту ошибку
2. @VizzyDigitalDeals добавить
await
доFuture.delayed