【发布时间】:2021-07-20 22:29:58
【问题描述】:
我有一个对象结构,其中包含相同类型对象的嵌套列表。如下:
class NoteModel {
String id;
String data;
List<NoteModel> children;
NoteModel({
this.id,
this.data,
List<NoteModel> children,
}) : children = children ?? [];
}
和一个示例数据结构如下:
var _result = NoteModel(
id: 'main Head',
data: 'main Head Data',
children: [
NoteModel(
id: ' child 1',
data: 'child 1 data',
children: [],
),
NoteModel(
id: 'child 2',
data: 'child 2 data',
children: [
NoteModel(
id: 'subchild 1',
data: 'subchild 1 of child 2',
children: [],
),
],
),
NoteModel(
id: 'child 3',
data: 'child 3 data',
children: [],
)
],
);
和 [Custom Widget] 将显示“id”、“data”和使用此结构的 [Custom Widget] 列表。 当我尝试添加(将对象添加到子级的父小部件上的按钮)或删除(将从父级的子级列表中删除自身的子级小部件上的按钮)时出现我的问题。
NoteModel 的对象实例在按下按钮时发生变化,但列表树没有刷新。 我已经尝试了所有手动方法,并尝试使用 GetX。但是,当从树的深处添加/删除某些小部件时,我找不到会触发使用更新的 NoteModel 实例重建小部件树的解决方案。
但是,在这个重建过程中,我只想重建某些部分以避免重建其他部分,例如子 [自定义小部件] 中不会更改的任何按钮。
请帮忙,我是新手,尝试了很多方法,但找不到任何解决方案来在嵌套子项中添加/删除操作。
【问题讨论】:
标签: flutter listview dart flutter-animatedlist