编写我的第一个颤振应用程序,我们需要使用PaginatedDataTable。医生说source字段应该
通常,比PaginatedDataTable小部件本身的生存期更长;每次调用PaginatedDataTable构造函数时,都应该重用它。
https://docs.flutter.io/flutter/material/PaginatedDataTable/source.html
处理这件事的最好方法是什么?有什么共同的模式吗?我最初的想法是单例模式,但我来自Java世界,所以我不确定这是否正确。
您还能解释为什么应该重用DataTableSource吗?谢谢。
发布于 2018-06-26 19:10:26
DataTableSource是表的状态。它包含所有的表数据,以及是否选择行。
它必须保存在某个地方,因为如果每次重新创建DataSource,就会丢失所有的选择和潜在的加载数据。考虑到数据是延迟加载的,并且可能来自http调用,这一点尤其正确。
理想情况下,您希望将您的DataSource存储在StatefulWidget或类似的东西(InheritedWidget、流等)中。
class MyTable extends StatefulWidget {
@override
_MyTableState createState() => new _MyTableState();
}
class _MyTableState extends State<MyTable> {
final myDataSource = new MyDataSource();
...
}https://stackoverflow.com/questions/51049696
复制相似问题