【问题标题】:_dependents.isEmpty: is not true. (when StackNavigation used from Drawer Navigation)_dependents.isEmpty:不正确。 (当从抽屉导航中使用 StackNavigation 时)
【发布时间】:2020-06-17 02:28:46
【问题描述】:

我已经搜索了所有可能的方法,但都失败了,所以我在这里发布它,请帮助:

我正在使用 redux 开发应用程序。但我面临一些问题。我的应用程序有以下内容:

  1. 堆栈导航正在启动。登录和注册页面。
  2. 成功登录后抽屉导航将打开。
  3. 抽屉内有listVIew,当我单击列表视图详细信息页面的任何一行时,将打开堆栈导航器。该应用程序在这一步之前工作正常。 但是当我执行第 4 步时
  4. 从详细信息页面(堆栈导航器)返回到抽屉导航的列表视图时,我遇到了这个问题。

════════(2)widgets库捕获的异常═══════════════════════════════ ════════════════════ 'package:flutter/src/widgets/framework.dart':断言失败:第 4701 行 pos 14:'_dependents.isEmpty':不正确。 相关的导致错误的小部件是: MaterialApp 文件:///home/anju/AndroidStudioProjects/flutter_training_app/lib/main.dart:37:16 ══════════════════════════════════════════════════ ══════════════════════════════════════════════════

════════(3)widgets库捕获的异常═══════════════════════════════ ════════════════════ 'package:flutter/src/widgets/framework.dart':断言失败:第 1786 行 pos 12:'_elements.contains(element)':不正确。 相关的导致错误的小部件是: MaterialApp 文件:///home/anju/AndroidStudioProjects/flutter_training_app/lib/main.dart:37:16 ══════════════════════════════════════════════════ ══════════════════════════════════════════════════

════════ (4)调度程序库捕获的异常═══════════════════════════════ ══════════════════ 'package:flutter/src/widgets/framework.dart':断言失败:第 2430 行 pos 16:'!_dirtyElements[index]._active || _dirtyElements[index]._debugIsInScope(context)':不正确。 ══════════════════════════════════════════════════ ══════════════════════════════════════════════════

下面给出的是我的颤振医生输出。

医生总结(要查看所有详细信息,请运行 flutter doctor -v):

[✓] Flutter (Channel stable, v1.12.13+hotfix.8, on Linux, locale en_IN)

[✓] Android 工具链 - 为 Android 设备开发(Android SDK 版本 28.0.3)

[✓] Android Studio(版本 3.5)

[✓] VS 代码(版本 1.42.0)

[✓] 已连接设备(1 个可用)

• 未发现任何问题!

我的 main.dart 文件包含:

runApp(StoreProvider(
        store: store,
        child: MaterialApp(
            initialRoute: '/login',
            routes: {
                '/login': (context) => Login(),
                '/registration': (context) => Registration(),
                '/dashboard': (context) => MainMenu()
            }
        )));

我的列表查看代码导航到详细信息页面:

           ListTile(
                       leading: Container(
                           padding: EdgeInsets.symmetric(vertical: 15),
                           child: Icon( Icons.insert_comment )
                       ),
                       title: Text(post.title),
                       subtitle: Text(post.body),
                       trailing: Container(
                           padding: EdgeInsets.symmetric(vertical: 15),
                           child: Icon(Icons.keyboard_arrow_right)
                       ),
                       onTap: () {
                           Navigator.of(context).push(
                               MaterialPageRoute(
                                   builder: (context) {
                                       return PostDetail();
                                   },
                               ),
                           );
                       }

From Detail 页面导航是这样使用的:

onPressed: () {
                          Navigator.of(context).push(
                              MaterialPageRoute(
                                  builder: (context) {
                                      return Posts();
                                  },
                              ),
                    );
    }

注意:如果你愿意,我可以分享我放在 GITHUB 上的代码链接。

【问题讨论】:

  • 您不是从PostDetail 路线导航回来,而是导航到新的Posts 路线。另外,请显示您遇到的第一个错误及其堆栈跟踪。您只显示了不相关的错误 2、3 和 4
  • 我使用过“Navigator.of(context).pop()”,它可以工作,谢谢@Ovidiu

标签: flutter flutter-layout flutter-dependencies


【解决方案1】:

正如 cmets 中所述,提供的错误对这个问题并没有真正的帮助。该错误是因为您试图通过创建一个新的来从PostDetail 回到Posts。如果Posts 在导航堆栈上,Navigator.of(context).pop() 应该可以帮助您返回上一个屏幕。

【讨论】:

    猜你喜欢
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多