flutter 类'PreferredSizeWidget'不能用作mixin,因为它既不是mixin类也不是mixin

bcs8qyzn  于 2023-05-19  发布在  Flutter
关注(0)|答案(1)|浏览(365)

升级到Flutter 3.10(和Dart 3)后,我得到了这个错误:
类“PreferredSizeWidget”不能用作mixin,因为它既不是mixin类也不是mixin。
代码的当前版本:

class MyAppBar extends StatelessWidget with PreferredSizeWidget {
  ...
}
xtupzzrd

xtupzzrd1#

如果你得到了同样的错误,只需将“with”改为“implements”,就像这样:

class MyAppBar extends StatelessWidget implements PreferredSizeWidget {
  ...
}

说明:

在Dart 3中,与之前的版本相比,混合规则变得更加严格。正如发行说明中提到的,在Dart 3之前,任何类都可以用作mixin,只要它没有声明的构造函数和Object以外的超类。在Dart 3中,在语言版本3.0或更高版本的库中声明的类不能用作mixin,除非它们显式地标记了mixin关键字。
因此,PreferredSizeWidget没有声明为mixin,并且在其定义中没有mixin关键字。这就是为什么在使用它作为mixin时会遇到错误。

相关问题