簡體   English   中英

將抽象類的擴展類作為參數傳遞給 flutter

[英]Pass extended class of an abstract class as a parameter in flutter

我正在嘗試使用 flutter 構建一個網站,但我無法弄清楚。 這是一個抽象類。

abstract class TableBaseClass {
  int getPage(BuildContext context);
  void setPage(int val,BuildContext context);
  int getPagination();
  void setPagination(String val,BuildContext context);
  void setSearch(String val,BuildContext context);
  String getSearch();
  dynamic getData();
  List getHeaders();
  List getBodyFields();
  void refresh(BuildContext context);
  void setSort(String header);
  void setOrder(String order,BuildContext context);
  String getOrder();
}

這個類正在擴展它。

class Objects extends TableBaseClass with ChangeNotifier {

這個小部件將抽象類作為參數。

class TableWidget extends StatefulWidget {
  final TableBaseClass provider;
  final String menuButton;

  const TableWidget(this.provider,this.menuButton, {super.key});

但是當我傳遞對象類TableWidget(Objects,menuButton)時,它給出了錯誤The argument type 'Type' can't be assigned to the parameter type 'TableBaseClass'.

提前感謝任何幫助。

因為您只是想傳遞一個類型,而不是TableBaseClass類的實例,所以您沒有調用類構造函數,請參見:

print(TableBaseClass); // this is a type, 
print(TableBaseClass.runtimeType); // Type

但是使用() ,您正在創建該類的一個實例:

print(TableBaseClass()); // this is an instance of TableBaseClass 
print(TableBaseClass().runtimeType); // TableBaseClass

暫無
暫無

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

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