我正在将一个大型项目迁移到空安全的过程中,遇到一个奇怪的错误,我不完全确定如何修复。
“错误:类型参数‘T’不符合‘GetIt.call’上类型变量‘T’的绑定‘对象’。”
class BaseView<T extends BaseProvider?> extends StatefulWidget {
final Widget Function(BuildContext context, T value, Widget? child)? builder;
final Function(T)? onModelReady;
BaseView({this.builder, this.onModelReady});
@override
_BaseViewState<T> createState() => _BaseViewState<T>();
}
class _BaseViewState<T extends BaseProvider?> extends State<BaseView<T?>> {
T model = locator<T>(); <---- This is throwing it
@override
void initState() {
if (widget.onModelReady != null) {
widget.onModelReady!(model);
}
super.initState();
}
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider<T?>(
create: (context) => model,
child: Consumer<T>(builder: widget.builder!),
);
}
}
Run Code Online (Sandbox Code Playgroud)
我找不到有关此错误的太多信息,到目前为止我尝试过的任何方法都没有成功。有人可以帮忙吗?
我使用 Provider 进行状态管理,而 BaseView …