flutter - 如何在 Flutter 中的 list/map/class(?) 项目之间建立依赖关系?
问题描述
我对我正在制作的应用程序有一个想法,我想让它成为可能,但我似乎无法理解解决方案应该是什么。
基本上我需要能够创建某些东西(类?地图?)的实例/项目,并且我希望能够将其中一些项目相互引用,比如依赖项。我想,我可以制作一个新项目,告诉它 itemX 是它的“父母”,而 itemX 被告知新项目是它的“孩子”。
就像是:
item1
item2
item3 --> item4 --> item5
item6 --> item7
**
同时我希望能够列出项目,以不同的方式对它们进行排序;
所有没有子项的项目
一个项目的所有孩子
项目的父项
按传递给他们的日期排序
等等
此外,我希望用户能够添加或删除项目而不会破坏依赖关系,例如删除时item[4]
变为,导致项目切换父项或子项。item[3]
item[2]
希望这有意义吗?
解决方案
您可以将项目链接到类中的项目
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]
推荐阅读
- reactjs - 将另一个组件的 function 和 useStates 作为 props 传递
- html - 被点击的按钮应在名为目标的 iframe 中打开网页
- ios - 堆叠轮播 SwiftUI
- excel - 水晶报表显示文字
- python - 在 postgresql 查询中使用多个 pandas 列表来过滤数据
- android - Android 12 - 模拟器 (Xamarin.Android)
- flutter - 没有抛出 DropdownButton 的值异常的 DropdownMenuItem,但实际上有一个。如何制作相等的列表?有替代方案吗?
- python - 如何使用 for 循环更新嵌套字典中的值?
- python - 为什么我会收到一个功能错误,提示我需要在我的 python 代码中添加功能?
- typeorm - 如何在typeorm的多对多关系中查询额外字段