我一直在通过第三方集成(例如,SentryNavigatorObserver、FirebaseAnalyticsObserver)来分析不同的导航器观察者,以使默认情况下没有导航器的工具完全相同。但我注意到,这两种方法都没有真正捕捉到所有的路由转换。当他们在相应的控制台中显示数据时,我就看到了。是的,它适用于push/pop,但是没有跟踪与go同级的任何转换。这很烦人。有人知道解决这个问题的方法吗?
例如,
从/page到/page/detail的转变被观察到。
从/pageA到/pageB的转换不是这样的。
发布于 2022-11-09 16:51:15
发现了问题。一些根路由是使用pageBuilder和NoTransitionPage构建的,因此为了避免动画,因为它们是作为选项卡工作的。
但是,除了设置NoTransitionPage.key初始化器参数外,还需要设置NoTransitionPage.name以识别路由。
因此,由于我没有这样做,导航器将所有这些路由视为null,因此它只是没有看到它们在两者之间发生变化。
例如,它应该是:
GoRoute(
name: Routes.home,
path: Routes.getPathNamed(Routes.home),
pageBuilder: (context, state) => NoTransitionPage<void>(
key: state.pageKey, // <--- note this
name: state.name, // <--- note this
child: ScaffoldWithBottomBarNav(body: Routes.getPageNamed(Routes.home)),
),
),https://stackoverflow.com/questions/74371607
复制相似问题