代码之家  ›  专栏  ›  技术社区  ›  Greg Noe

管理可分页数据的DataTableSource的最佳方法?

  •  0
  • Greg Noe  · 技术社区  · 7 年前

    编写我的第一个颤振应用程序,我们需要使用 PaginatedDataTable .医生说 source 字段应该

    通常使用寿命比paginatedatatable长 小部件本身;每次paginatedatatable 调用构造函数。

    https://docs.flutter.io/flutter/material/PaginatedDataTable/source.html

    最好的方法是什么?有没有共同的模式?我最初的想法是单模式,但我来自Java世界,所以我不确定这是否正确。

    你也能解释一下吗 为什么 这个 DataTableSource 应该重用吗?谢谢。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Rémi Rousselet    7 年前

    DataTableSource是表的状态。它包含所有表数据以及是否选择行。

    它必须在某个地方持久化,因为如果每次重新创建数据源,都会释放所有的选择和潜在的加载数据。 考虑到数据是延迟加载的,并且可能来自HTTP调用,这一点尤其正确。

    理想情况下,您将希望将数据源存储在statefulwidget或类似的东西(继承的widget、流等)中。

    class MyTable extends StatefulWidget {
      @override
      _MyTableState createState() => new _MyTableState();
    }
    
    class _MyTableState extends State<MyTable> {
      final myDataSource = new MyDataSource();
    
      ...
    }