编写我的第一个 Flutter 应用程序,我们需要使用PaginatedDataTable. 文档说该source领域应该
通常比 PaginatedDataTable 小部件本身具有更长的生命周期;每次调用 PaginatedDataTable 构造函数时都应该重用它。
https://docs.flutter.io/flutter/material/PaginatedDataTable/source.html
管理这种情况的最佳方法是什么?有共同的模式吗?我最初的想法是单例模式,但我来自 Java 世界,所以我不确定这是否正确。
你也可以解释为什么在DataTableSource应该被重复使用?谢谢。
DataTableSource 是您的表的状态。它包含您所有的表数据以及是否选择了行。
它必须保留在某个地方,因为如果每次都重新创建数据源,则会丢失所有选择和潜在加载的数据。考虑到数据是延迟加载的,并且可能来自 http 调用,这一点尤其正确。
理想情况下,您需要将 DataSource 存储在 StatefulWidget 或类似的东西(InheritedWidget、Stream 等)中。
class MyTable extends StatefulWidget {
@override
_MyTableState createState() => new _MyTableState();
}
class _MyTableState extends State<MyTable> {
final myDataSource = new MyDataSource();
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1605 次 |
| 最近记录: |