如何解决错误:类型参数“T”不符合“GetIt.call”上类型变量“T”的绑定“Object”迁移到 Null Safety 后
我正在将一个大型项目迁移到 null 安全,但遇到了一个奇怪的错误,我不完全确定如何修复。
“错误:类型参数‘T’不符合‘GetIt.call’上类型变量‘T’的绑定‘Object’。”
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!),);
}
}
我找不到关于此错误的太多信息,到目前为止我尝试过的任何方法都没有奏效。任何人都可以提供帮助吗?
我使用 Provider 进行状态管理,而 BaseView 是在构建过程中包装我所有其他视图的东西;例如:
class EquipmentMainView extends StatelessWidget {
@override
Widget build(BuildContext context) {
return BaseView<EquipmentProvider>(
onModelReady: (model) async {
model.getAllFunctions();
},..
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。