[英]Flutter: update PaginatedDataTable from method in DataTableSource?
[英]Best way to manage DataTableSource for PaginatedDataTable?
编写我的第一个Flutter应用程序,我们需要使用PaginatedDataTable
。 文档说source
字段应该
通常,其生存期比PaginatedDataTable小部件本身更长; 每次调用PaginatedDataTable构造函数时,都应重用它。
https://docs.flutter.io/flutter/material/PaginatedDataTable/source.html
最好的管理方式是什么? 有共同的模式吗? 我最初的想法是单例模式,但是我来自Java世界,因此不确定是否正确。
您还可以解释为什么应重新使用DataTableSource
吗? 谢谢。
DataTableSource是表的状态。 它包含您所有的表数据以及是否选择了行。
它必须保留在某个地方,因为如果每次重新创建DataSource时,您都会失去所有选择和可能加载的数据。 考虑到数据是延迟加载的,并且可能来自http调用,因此尤其如此。
理想情况下,您需要将DataSource存储在StatefulWidget或类似的东西(InheritedWidget,Stream等)中。
class MyTable extends StatefulWidget {
@override
_MyTableState createState() => new _MyTableState();
}
class _MyTableState extends State<MyTable> {
final myDataSource = new MyDataSource();
...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.