我在下面分享了解决方案!
我正在使用 auto_route 包,在嵌套导航中我收到错误消息:
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: NoSuchMethodError: Class 'TabsRouter' has no instance getter 'identifier'. E/flutter ( 5578): Receiver: Instance of 'TabsRouter'
@AutoRouterConfig(replaceInRouteName: "View,Route")
class AppRouter extends _$AppRouter {
@override
List<AutoRoute> get routes => [
AutoRoute(
page: HomeRoute.page,
path: "/home",
initial: true,
children: [
AutoRoute(page: UserRoute.page, path: "user", initial: true),
AutoRoute(page: SettingsRoute.page, path: "settings"),
],
),
AutoRoute(
page: UserDetailRoute.page,
),
];
}
7.8.4 works fine.
导致问题的差异是:
routing_controller.dart v7.8.4:
void _removeTopRouterOf(Key? key) {
for (final ctr in List.unmodifiable(_childControllers).reversed) {
if (ctr.key == key) {
_childControllers.remove(ctr);
break;
}
}
}
routing_controller.dart v7.8.5:
void _removeTopRouterOf(Key? key) {
for (final ctr in List.unmodifiable(_childControllers).reversed) {
if (ctr.identifier == key) {
_childControllers.remove(ctr);
break;
}
}
}