1

我刚开始使用 Flutter,一直在寻找这个问题,但没有找到任何东西。
我运行命令 slidy start 以创建我的项目结构。但是现在,我在应用程序模块中收到此错误导入路由器冲突:

名称 'Router' 在库 'package:flutter/src/widgets/router.dart' 和 'package:flutter_modular/src/routers/router.dart (via 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();
}

大家知道怎么解决吗?

4

1 回答 1

1

你有两个路由器类

包:flutter/src/widgets/router.dart

包: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();
}
于 2020-08-19T05:57:30.160 回答