Ошибка при нажатии навигатора: «! _DebugLocked ': неверно».

Когда я пытался нажать из initstate, появляется эта ошибка. Помощь

Импортируйте файлы сюда

import 'package:flutter/material.dart';
import 'package:flutter_spinkit/flutter_spinkit.dart';
import 'package:corona_app/screens/home.dart';

Виджет с отслеживанием состояния экрана загрузки

class LoadingScreen extends StatefulWidget {
  @override
  _LoadingScreenState createState() => _LoadingScreenState();
}

class _LoadingScreenState extends State<LoadingScreen> {
  @override

initState

  void initState() {
    // TODO: implement initState
    super.initState();
    Navigator.push(context, MaterialPageRoute(builder: (context)=>Home()));

  }
  @override

Сборка виджета

  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: SpinKitPouringHourglass(
          color: Colors.green,
          size: 100,
        ),
      ),
    );
  }
}

person Alpha Bot    schedule 09.07.2020    source источник
comment
Можете ли вы попробовать заменить для этого свой Navigator.push в своем initState? Future.delayed(Duration.zero, () { Navigator.push(context, MaterialPageRoute(builder: (context) => Home())); });   -  person Vitor    schedule 09.07.2020


Ответы (1)


Alpha Bot Попробуйте этот код:

@override
void initState() {
  WidgetsBinding.instance.addPostFrameCallback((_) => _afterLayout(context));
  super.initState();
}

Затем создайте этот метод и перейдите в свой Дом:

_afterLayout(BuildContext context) {
    // TODO
 Navigator.push(context, MaterialPageRoute(builder: (context)=>Home()));
}
person Jhakiz    schedule 09.07.2020