«пакет:flutter/src/виджеты/navigator.dart»: Неудачное утверждение: строка 5338 pos 12: «!_debugLocked»: неверно. И это мой код, приведенный ниже

#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