undefined_named_parameter 在抽象的超级构造函数中 class

undefined_named_parameter in super constructor of abstract class

我是 Dart 和 Flutter 的新手,我一直在尝试制作两个 classes(SuccessState 和 ErrorState)来实现带有可选命名参数的抽象 class (DataState) .出于某种原因,每当我在 SuccessState 和 ErrorState 中调用超级构造函数时,我都会在 SuccessState 构造函数中的“data”参数以及 ErrorState 构造函数中的“status”和“msg”参数上收到 undefined_named_parameter 错误。非常感谢任何输入,谢谢。

abstract class DataState<T> {
  final T? data;
  final int? status;
  final String? msg;

  const DataState({this.data, this.status, this.msg});
}

class SuccessState<T> implements DataState<T> {
  const SuccessState(T data) : super(data: data);

  @override
  noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
}

class ErrorState<T> implements DataState<T> {
  const ErrorState(int status, String msg) : super(status: status, msg: msg);

  @override
  noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
}

你做错的是你正在实施,因为你必须扩展 DataState class 然后问题就会解决

'class ErrorState implements DataState'

更改为 class ErrorState 扩展了 DataState

问题是您使用的是 implements 而不是 extends。使用 implements.

时不继承超级构造函数

您想将 SuccessState 和 ErrorState 扩展到 DataState。

abstract class DataState<T> {
  final T? data;
  final int? status;
  final String? msg;

  const DataState({this.data, this.status, this.msg});
}

class SuccessState<T> extends DataState<T> {
  SuccessState(T data) : super(data: data);

  @override
  noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
}

class ErrorState<T> implements DataState<T> {
  const ErrorState(int status, String msg) : super();

  @override
  noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
}