首页 > 解决方案 > 参数类型“Widget”不能分配给参数类型“PreferredSizeWidget?” 零安全

问题描述

Scaffold(
  appBar: _buildAppBar(),
)

这是功能:

Widget _buildAppBar() => AppBar(); // Error

在我将代码迁移到空安全之前,这段代码运行良好。

标签: flutterdart-null-safety

解决方案


Dart 空安全不允许向下转换,因此您不能将 a 分配WidgetPreferredSizeWidget就像您不能将 a 分配Object给 a一样String(这在空安全之前是可能的)。

你应该改变你的函数并从它返回AppBar或返回。PreferredSizeWidget

AppBar _buildAppBar() => AppBar();

或者

PreferredSizeWidget _buildAppBar() => AppBar();

推荐阅读