【问题标题】:app.dart error when trying to navigate to new page using ontap尝试使用 ontap 导航到新页面时出现 app.dart 错误
【发布时间】:2019-05-10 06:22:58
【问题描述】:

我正在使用 Fontawesome 图标导航到使用 ontap 颤动的新页面,我在 app.dart 中遇到了一个奇怪的错误。

我对飞镖还很陌生,所以我的调试技能并没有透露任何信息。这是 ontap 代码。

 Widget build(BuildContext context) {
  return new MaterialApp(
  theme: new ThemeData(
    fontFamily: "Tahoma",
    brightness: Brightness.light,
    primaryColor: Colors.grey, //Changing this will change the color of the TabBar
    accentColor: Colors.cyan[600],
  ),
 routes: routes,
 home: DefaultTabController(
 length: 1,
  child: Scaffold(
  appBar: new LBAppBar().getAppBar(),
  drawer: new LBDrawer().getDrawer(),
    body: Column(children: <Widget>[
          Row(
            //ROW 1
            children: [
              Container(
                margin: EdgeInsets.all(30.0),
                child: Column(
      children: <Widget>[
           GestureDetector(
                     child: Icon(
                     FontAwesomeIcons.solidCheckSquare,
                     size: 60.0,
                     color: const Color.fromRGBO(1,89,99, 1.0),
             ),
                  onTap: () {
                         Navigator.pushNamed(context, '/checkin');
                          }),
                Text("Check In", style: new TextStyle( color: Color.fromRGBO(1,89,99, 1.0), fontWeight: FontWeight.bold ))
],
 ),

我正在尝试导航到一个新的 dart 文件,我将在其中捕获用户 ID 并在表单中收集信息,但我无法让它导航到新页面。

---- 路线代码 ---

import 'package:flutter/material.dart';
import '../screens/index.dart';
import '../screens/checkin.dart';

final routes = {
 '/index':         (BuildContext context) => new Index(),
 '/checkin':       (BuildContext context) => new CheckIn(),
 };

这是错误。

在构建 MaterialApp(dirty, state: _MaterialAppState#6ff5c): 'package:flutter/src/widgets/app.dart': 失败的断言: line 169 pos 15: 'navigatorObservers != null': is不是真的。

我有一个 routes.dart 文件,其中列出了签入路线。

【问题讨论】:

  • 包括你的路线:路线代码也。你是如何设置 var 路由的

标签: dart flutter


【解决方案1】:

您是否提供了到您的顶级应用小部件(meterialApp、cupertinoApp、widgetsApp)的路线?

Navigator 仅由您提供任何路线构建而成。您正在随时随地创建小部件,或者您需要任何可以使用的参数

Navigator.of(context).push(new MaterialPageRoute(builder: (BuildContext context) =&gt; Widget())),

【讨论】:

  • 路线包括在内。我想知道 ontap 是否是问题所在,我以同样的方式使用 onpressed 并且它正在工作
  • 您能否包含整个代码,它可以帮助我以更好的方式回答您的问题
  • 是的,我将发布路线和 index.dart 的完整 dart 文件
  • 我添加了 routes.dart 代码。我尝试删除 defualttabcontroller,因为我没有使用它,但没有用。令我困惑的是,我的登录页面上的代码完全相同,唯一的区别是按钮上的 onTap VS onpressed。
【解决方案2】:

我发现了问题,声明了多个材质应用程序。我把它减少到一个,它现在可以工作了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    相关资源
    最近更新 更多