flutter - 根路由和不同的initialRoute创建奇怪的WidgetTree

标签 flutter dart routing routes

我正在尝试使用命名路线在不同的屏幕之间导航。

我正在定义一个根路由(您可以将其称为后备路由(?)),一些其他路由和一个initialRoute,它们链接到与根路由不同的屏幕。

enter image description here

小部件树似乎也加载了根路由。但为什么?

enter image description here

TicketsScreen具有许多小部件,我不希望事先加载它们。

顺便说一句:这只是一个例子。当有多个路由时,它仍然会加载上述两个路由。

最佳答案

这是因为/tasks具有领先的/

导航系统会推送所有内容,请让我解释一下。

如果您有路线:

  • /
  • /tasks
  • /tasks/new

  • 导航至/tasks/new将同时推送所有三个。

    如果要保留“单一”路线,则应使用顶级限定符。在您的情况下,这将从/中删除/tasks

    例如,这种机制可用于 push 路径并避免出现奇怪的爆裂声,例如,
    您可以通过快捷方式(而不是/tasks/new)导航到/tasks,然后弹出。跳到起点好吗?如果从新任务弹出会转到任务页面会更好吗?

    我想这是对导航器尝试执行的操作的简要说明。

    关于flutter - 根路由和不同的initialRoute创建奇怪的WidgetTree,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58733056/

    相关文章:

    flutter - Dart:如何在不调用函数的情况下引用带有参数的函数?

    flutter - 什么是 flutter 中的 "?."运算符

    user-interface - Flutter中带有文本的水平分隔线?

    asp.net-mvc - 更改 ASP.Net MVC 目录结构

    ruby-on-rails-3 - 无法在 Rails 3.2 + Rspec 2.13 下测试引擎路线

    enums - 如何使用 Dart/Flutter 将枚举属性序列化/反序列化到 Firestore?

    flutter - 如何将小部件放置在具有成比例大小和位置的小部件上方

    polymer - 有没有办法调试 TypeError : Invalid value used as weak map key?

    javascript - 在 Flutter 的 html 文件中使用 js 文件

    ruby-on-rails - Rails - 存在路由时 API 命名空间的路由错误