参数类型“Widget Function(BuildContext, T, Widget)”无法分配给参数类型“Widget Function(BuildContext, T, Widget?)”

use*_*652 2 authentication state dart flutter

我一直在遵循一个教程来在我们的 flutter web 应用程序中实现状态管理。这是教程:https://medium.flutterdevs.com/firebase-authentication-using-provider-in-flutter-522841a2ee4d

现在我正在为我的小部件创建“baseView”模型,并且有点迷失,因为我是颤振的新手。

class BaseView<T extends BaseModel> extends StatefulWidget {
  final Widget Function(BuildContext context, T model, Widget child) builder;

  const BaseView({
    @required this.builder,
  });

  @override
  _BaseViewState<T> createState() => _BaseViewState<T>();
}

class _BaseViewState<T extends BaseModel> extends State<BaseView<T>> {
  T model = locator<T>();

  @override
  Widget build(BuildContext context) {
    return ChangeNotifierProvider<T>.value(
      //builder: (context) => model,
      child: Consumer<T>(builder: widget.builder),
      //notifier: model,
      value: model,
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

首先,我收到“@required this.builder”部分的错误消息:

由于其类型,参数“builder”不能具有“null”值,但隐式默认值为“null”。

对于“Consumer<T>(builder: widget.builder)”部分,我收到此错误:

参数类型“Widget Function(BuildContext, T, Widget)”无法分配给参数类型“Widget Function(BuildContext, T, Widget?)”。

链接到该项目的 Github 存储库,该存储库在教程中提供:https ://github.com/flutter-devs/flutter_auth_provider

Kev*_*ore 6

Widget Function(BuildContext, T, Widget)无法接受签名null所需的小部件值Widget Function(BuildContext, T, Widget?)

就是这样。合理?