簡體   English   中英

抽象 class 的超級構造函數中的 undefined_named_parameter

[英]undefined_named_parameter in super constructor of abstract class

我對 Dart 和 Flutter 非常陌生,我一直在嘗試創建兩個類(SuccessState 和 ErrorState),它們實現了一個抽象的 class(Data.State),帶有可選參數出於某種原因,每當我在 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 然后問題將得到解決

'類 ErrorState 實現 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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM