Flutter / Dart:抽象类-无法读取子类字段

class HorizontalMenu {
  String title;
  List<VerticalMenu> submenuItems;

  HorizontalMenu({
    @required this.title,@required this.submenuItems,});
}

这是水平滚动菜单的类定义。

水平标题很少。图片电影应用程序。

恐怖电影(水平菜单)
电影很少(垂直菜单)

喜剧电影
几部电影

但是我的垂直菜单不会与示例电影应用程序中的字段相同。

所以我创建了抽象的垂直类

abstract class VerticalMenu {
  String title;
  String imageLocation;
  navigation navigateTo;

  VerticalMenu({
    @required this.title,@required this.imageLocation,@required this.navigateTo,});
}

每个垂直菜单将转到不同的屏幕。

class FirstVerticalMenu extends VerticalMenu {
  String json;

  FirstVerticalMenu ({
    this.json,String title,String imageLocation,navigation navigateTo,}) : super(
          title: title,imageLocation: imageLocation,navigateTo: navigateTo,);
}

带有垂直菜单的水平菜单列表

List<HorizontalMenu> menuItems = [
  HorizontalMenu(
    title: 'First column',submenuItems: <FirstVerticalMenu>[
      FirstScreen(
        title: 'First Screen',imageLocation: 'assets/images/',navigateTo: navigation.FirstScreen,json: 'data.json',),FirstScreen(
        title: 'First Screen',json: 'data2.json',],HorizontalMenu(
    title: 'Second column',submenuItems: <SecondVerticalMenu>[
      SecondScreen(
        title: 'Second Screen',imageLocation: 'assets/images/screen2/',navigateTo: navigation.SecondScreen,type: 'type_1',options: []
      ),SecondScreen(
        title: 'First Screen',type: 'type_2',

FirstVerticalMenu和SecondVerticalMenu几乎没有什么区别。
但是他们使用VerticalMenu的字段

现在,如果使用列表生成器,我将无法读取FirstVerticalMenu或SecondVerticalMenu的字段。

  

未为类“ VerticalMenu”定义吸气剂“ json”。

我在这里添加了很多编码,以致混淆。所以我没有在这里添加列表生成器代码。

我还没有使用过课程。我在React Native和reactjs中工作。 因此,抽象类概念在开始时就不会造成混淆。

您将如何解决此问题? 具有相似项目的水平菜单和具有非相似项目的垂直菜单。

wangzywangzy 回答:Flutter / Dart:抽象类-无法读取子类字段

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3124547.html

大家都在问