【发布时间】:2020-09-01 18:52:06
【问题描述】:
class SearchModule extends ModuleWidget {
@override
List<Bind> get binds => [
Bind((i) => SearchController()),
];
@override
List<Router> get routers => [
Router(Modular.initialRoute, child: (_, args) => SearchPage()),
Router("teacher", child: (_, args) => TeacherListPage()),
];
@override
Widget get view => SearchPage();
static Inject get to => Inject<SearchModule>.of();
}
我无法访问此模块的“教师”路线。也就是说,我无法使用Modular.to.pushNamed('/teacher', arguments: TeacherListPage())方法导航到这条路线
我收到以下错误:Could not find a generator for route RouteSettings("/teacher", TeacherListPage) in the _WidgetsAppState.
谁能给我点灯??呵呵
跟随模块的流程。:
I/flutter (13793): -- AppModule INITIALIZED
I/flutter (13793): -- HomeModule INITIALIZED
I/flutter (13793): -- ReviewsModule INITIALIZED
I/flutter (13793): -- HomeModule DISPOSED
I/flutter (13793): -- SearchModule INITIALIZED
遵循模块的结构。:
<------------------------------------------------------------------------>
class AppModule extends MainModule {
@override
List<Bind> get binds => [
Bind((i) => TeacherListController()),
Bind((i) => ReviewsContentController()),
Bind((i) => SigninController()),
Bind((i) => SignupController()),
Bind((i) => AppController()),
];
@override
List<Router> get routers => [
Router(Modular.initialRoute, module: HomeModule()),
Router('/reviews', module: ReviewsModule()),
];
@override
Widget get bootstrap => AppWidget();
static Inject get to => Inject<AppModule>.of();
}
<------------------------------------------------------------------------>
class HomeModule extends ChildModule {
@override
List<Bind> get binds => [
Bind((i) => HomeController()),
];
@override
List<Router> get routers => [
Router(Modular.initialRoute, child: (_, args) => HomePage()),
Router("signUp", child: (_, args) => SignupPage()),
Router("signIn", child: (_, args) => SigninPage()),
];
static Inject get to => Inject<HomeModule>.of();
}
<------------------------------------------------------------------------>
class ReviewsModule extends ChildModule {
@override
List<Bind> get binds => [
Bind((i) => ReviewsController()),
];
@override
List<Router> get routers => [
Router(Modular.initialRoute, child: (_, args) => ReviewsPage()),
];
static Inject get to => Inject<ReviewsModule>.of();
}
<------------------------------------------------------------------------>
class SearchModule extends ModuleWidget {
@override
List<Bind> get binds => [
Bind((i) => SearchController()),
];
@override
List<Router> get routers => [
Router(Modular.initialRoute, child: (_, args) => SearchPage()),
Router("teacher", child: (_, args) => TeacherListPage()),
];
@override
Widget get view => SearchPage();
static Inject get to => Inject<SearchModule>.of();
}
<------------------------------------------------------------------------>
【问题讨论】:
-
我没有阅读完整的代码,但你能确定不是因为在某些地方你使用路由名称为
teacher,然后尝试用名称@推送它987654327@. -
否定!但是 tkx ;)
标签: android flutter routes dart-pub modular