[英]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.