我有实现 ChangeNotifier 的模型
class DataModel with ChangeNotifier{
List<Data> data = List<Data>();
void addData(Data data){
data.add(data);
notifyListeners();
}
}
Run Code Online (Sandbox Code Playgroud)
以及一个监听这些变化的 ListView:
class DataListView extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Consumer<DataModel>(
builder: (context, model, child) {
return ListView.builder(
itemCount: model.data.length,
itemBuilder: (context, index) {
return Text(model.data[index].value);
},
);
},
);
}
}
Run Code Online (Sandbox Code Playgroud)
到目前为止一切顺利,当一个项目添加到模型中的列表时,更改通知会触发 Listview 的重建,我会看到新数据。但是我无法将它与 AnimatedList 而不是 ListView 一起使用。最好我喜欢保持我的模型原样,因为动画是 ui 的问题,而不是我的逻辑。
changenotifier 总是为我提供最新版本的数据,但我真正需要的是“添加项目”或“删除项目”通知。
有没有这样做的最佳实践方法?