You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

迁移至Flutter 3.3.0后构建失败:InitAppUseCase无法作为mixin使用

解决Flutter 3.3.0迁移后InitAppUseCase无法作为mixin使用的构建错误

问题原因

Flutter 3.3.0对应的Dart 2.18.x版本收紧了mixin的使用规则:仅继承自Object且无显式父类的类才能作为mixin使用。你的InitAppUseCase类继承了Object以外的类,因此无法再通过with关键字混入。

解决方案

  • 方案1:重构InitAppUseCase为纯mixin
    修改InitAppUseCase的定义,移除原有父类继承,改用mixin关键字直接声明:

    mixin InitAppUseCase {
      // 保留原类中的方法、属性逻辑
    }
    

    若原类依赖某个父类的功能,可将父类逻辑转为mixin,或通过组合而非继承的方式引入。

  • 方案2:用组合替代混入
    若无法将InitAppUseCase改为纯mixin,在_$_InitApp类中通过组合方式使用它,替换with混入:

    class _$_InitApp implements _InitApp {
      final InitAppUseCase initAppUseCase;
    
      _$_InitApp(this.initAppUseCase);
    
      // 调用功能时直接通过initAppUseCase实例调用
    }
    
  • 方案3:调整Freezed代码生成逻辑
    若该类由Freezed自动生成,检查Freezed注解配置,确保InitAppUseCase未被错误标记为可混入类型,或修改实体类定义,避免用with引入带父类的类。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 11:45:36