首页 > 解决方案 > 如何在 Flutter 中的 list/map/class(?) 项目之间建立依赖关系?

问题描述

我对我正在制作的应用程序有一个想法,我想让它成为可能,但我似乎无法理解解决方案应该是什么。

基本上我需要能够创建某些东西(类?地图?)的实例/项目,并且我希望能够将其中一些项目相互引用,比如依赖项。我想,我可以制作一个新项目,告诉它 itemX 是它的“父母”,而 itemX 被告知新项目是它的“孩子”。

就像是:

item1

item2

item3 --> item4 --> item5

item6 --> item7

**

同时我希望能够列出项目,以不同​​的方式对它们进行排序;

所有没有子项的项目

一个项目的所有孩子

项目的父项

按传递给他们的日期排序

等等

此外,我希望用户能够添加或删除项目而不会破坏依赖关系,例如删除时item[4]变为,导致项目切换父项或子项。item[3]item[2]

希望这有意义吗?

标签: flutter

解决方案


您可以将项目链接到类中的项目

class Item {
   // other class members

   List<Item> _children = []; //list of children of type item 
   List<Item> _parents = [];  //list of parent of type item   

   Item();        

   List<Item> get getChildren => _children;
   List<Item> get getParents => _parents;

   set setChildren(Item child){
      _children.add(child);  
      //passing instance of item to this item.
   }
   set setParents(Item parent){
      _parents.add(parent);
   }

   //other methods

}

然后你可以使用类似的东西:

let itemA = new Item();
let itemB = new Item();

itemA.setChildren(itemB);
itemB.setParents(itemA);

print(itemA.getChildren()); // [itemB]
print(itemB.getChildren()); // []
print(itemB.getParents()); // [itemA]

推荐阅读