小编Swi*_*ese的帖子

错误:类型参数“T”不符合“GetIt.call”上类型变量“T”的绑定“对象”。迁移到 Null Safety 后

我正在将一个大型项目迁移到空安全的过程中,遇到一个奇怪的错误,我不完全确定如何修复。

“错误:类型参数‘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 …

dart flutter dart-null-safety

10
推荐指数
1
解决办法
2万
查看次数

标签 统计

dart ×1

dart-null-safety ×1

flutter ×1