【问题标题】:Error thrown on navigator push : “!_debugLocked': is not true.”导航器推送时抛出错误:“!_debugLocked':不正确。”
【发布时间】:2020-10-30 01:17:58
【问题描述】:

当我尝试从 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

初始化状态

  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,
        ),
      ),
    );
  }
}

【问题讨论】:

  • 你可以尝试在你的 initState 中替换你的 Navigator.push 吗? Future.delayed(Duration.zero, () { Navigator.push(context, MaterialPageRoute(builder: (context) =&gt; Home())); });

标签: flutter flutter-test


【解决方案1】:

Alpha Bot试试这个代码:

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

然后创建此方法并导航到您的主页:

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

【讨论】:

    猜你喜欢
    • 2019-09-01
    • 1970-01-01
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 2013-03-09
    • 1970-01-01
    • 2018-11-01
    相关资源
    最近更新 更多