问题描述
我刚开始使用Flutter,一直在寻找这个问题,却一无所获。
我运行命令slidy start来创建我的项目结构。但是现在,我在应用模块中收到此错误导入路由器冲突:
名称“路由器”在库“ package:Flutter / src / widgets / router.dart”和“ package:Flutter_modular / src / routers / router.dart”中定义(通过package:Flutter_modular / Flutter_modular.dart) 。\ n请尝试对其中一个导入指令使用“作为前缀”,或对除其中一个导入以外的所有内容隐藏名称。”
这是我现在的课程:
import 'app_controller.dart';
import 'package:Flutter_modular/Flutter_modular.dart';
import 'package:Flutter/material.dart';
import 'package:slidy_aula2_v1/app/app_widget.dart';
import 'package:slidy_aula2_v1/app/modules/home/home_module.dart';
class AppModule extends MainModule {
@override
List<Bind> get binds => [
Bind((i) => AppController()),];
@override
List<Router> get routers => [
Router(Modular.initialRoute,module: HomeModule()),];
@override
Widget get bootstrap => AppWidget();
static Inject get to => Inject<AppModule>.of();
}
你们都知道如何解决吗?
解决方法
您有两个Router类
package:flutter / src / widgets / router.dart
和
package:flutter_modular / src / routers / router.dart
为flutter_modular包定义前缀:
import 'package:flutter_modular/flutter_modular.dart' as ModularRouter;
如果在flutter_modular中使用Router类,请将Router更改为ModularRouter.Router。
class AppModule extends MainModule {
@override
List<Bind> get binds => [
Bind((i) => AppController()),];
@override
List<ModularRouter.Router> get routers => [
ModularRouter.Router(Modular.initialRoute,module: HomeModule()),];
@override
Widget get bootstrap => AppWidget();
static Inject get to => Inject<AppModule>.of();
}