参数类型 'Widget Function(BuildContext, T, Widget)' 无法分配给参数类型 'Widget Function(BuildContext, T, Widget?)
The argument type 'Widget Function(BuildContext, T, Widget)' can't be assigned to the parameter type 'Widget Function(BuildContext, T, Widget?)
我有一个基本小部件 class,自从我将提供程序版本升级到 5.0.0 后它就不再工作了。
在 builder: widget.builder
我收到这个错误:
The argument type 'Widget Function(BuildContext, T, Widget)' can't be
assigned to the parameter type 'Widget Function(BuildContext, T,
Widget?)
我该如何解决这个问题?
这是我的代码
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class BaseWidget<T extends ChangeNotifier> extends StatefulWidget {
final Widget Function(BuildContext context, T model, Widget child) builder;
final T model;
final Widget child;
final Function(T) onModelReady;
BaseWidget({
Key? key,
required this.builder,
required this.model,
required this.child,
required this.onModelReady,
}) : super(key: key);
_BaseWidgetState<T> createState() => _BaseWidgetState<T>();
}
class _BaseWidgetState<T extends ChangeNotifier> extends State<BaseWidget<T>> {
late T model;
@override
void initState() {
model = widget.model;
widget.onModelReady(model);
super.initState();
}
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider<T>(
create: (context) => model,
child: Consumer<T>(
builder: widget.builder,
child: widget.child,
),
);
}
}
我将代码粘贴到 Android studio 中,看起来需要更改以下内容:
来自
final Widget Function(BuildContext context, T model, Widget child) builder;
至
final Widget Function(BuildContext context, T model, Widget? child) builder;
我有一个基本小部件 class,自从我将提供程序版本升级到 5.0.0 后它就不再工作了。
在 builder: widget.builder
我收到这个错误:
The argument type 'Widget Function(BuildContext, T, Widget)' can't be assigned to the parameter type 'Widget Function(BuildContext, T, Widget?)
我该如何解决这个问题?
这是我的代码
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class BaseWidget<T extends ChangeNotifier> extends StatefulWidget {
final Widget Function(BuildContext context, T model, Widget child) builder;
final T model;
final Widget child;
final Function(T) onModelReady;
BaseWidget({
Key? key,
required this.builder,
required this.model,
required this.child,
required this.onModelReady,
}) : super(key: key);
_BaseWidgetState<T> createState() => _BaseWidgetState<T>();
}
class _BaseWidgetState<T extends ChangeNotifier> extends State<BaseWidget<T>> {
late T model;
@override
void initState() {
model = widget.model;
widget.onModelReady(model);
super.initState();
}
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider<T>(
create: (context) => model,
child: Consumer<T>(
builder: widget.builder,
child: widget.child,
),
);
}
}
我将代码粘贴到 Android studio 中,看起来需要更改以下内容:
来自
final Widget Function(BuildContext context, T model, Widget child) builder;
至
final Widget Function(BuildContext context, T model, Widget? child) builder;