Flutter 如何为dart上的变量分配类类型
我对飞舞和飞镖还不熟悉 我想和下面的抽屉过渡Flutter 如何为dart上的变量分配类类型,flutter,dart,Flutter,Dart,我对飞舞和飞镖还不熟悉 我想和下面的抽屉过渡 class Page { String title; var page; Page(this.title, this.page); } class CommonDrawer extends StatelessWidget { var _pages = [Page('Home', HomePage), Page('Form', FormPage)]; @override Widget build(
class Page {
String title;
var page;
Page(this.title, this.page);
}
class CommonDrawer extends StatelessWidget {
var _pages = [Page('Home', HomePage),
Page('Form', FormPage)];
@override
Widget build(BuildContext context) {
return Drawer(
child: ListView(
children: <Widget>[
for (final p in _pages) genTile(p, context),
]
ListTile genTile(Page page, context) {
~~~~~~~ Omitted ~~~~~~~~~~
Navigator.push(
context, MaterialPageRoute(builder: (context) => page.page()));
}
}
new page.page出现编译错误
有人知道dart的正确方法吗?您不能在dart中抽象类。 使用类型变量泛型,可以对类型进行抽象,但即使这样也不允许调用构造函数 尝试将代码更改为: 类页{ 字符串标题; 动态函数createPage; Pagethis.title,this.createPage; } 类CommonDrawer扩展了无状态小部件{ var_pages=[主页,=>主页, 页面'格式',=>FormPage]; ... 导航器。推 context,materialPackageRouteBuilder:context=>page.createPage; } }
对于createPage的返回类型,我会使用不同于dynamic的类型,但我看不出HomePage和FormPage的常见超类型是什么。像这样使用HomePage并删除page.page到page.page
Attempted to use type 'FormPage' as a function. Since types do not define a method 'call', this is not possible. Did you intend to call the FormPage constructor and forget the 'new' operator?