无限滚动listview-在构建过程中调用setState()或markNeedsBuild

时间:2018-07-09 16:12:29

标签: android ios dart flutter

我正在创建一个无限滚动listView,并且我想使用N函数中的setState将_loadingState字符串从'loading ...'更改为'loaded',但是当调用_loadNames时从_loadNames中,我得到“在构建错误期间调用setState”。使用RefreshIndicator可以正常工作并更新项目,但滚动到底部会导致错误。我如何能够从ListViews构建器中调用_loadNames而不会出现错误或可以使用其他什么方法。 注意:不想使用redux或bloc。

itemBuilder

1 个答案:

答案 0 :(得分:4)

更改_loadNames() {

_loadNames(){
   loading = true;
   // setState(() {
     _loadingState = 'loading...';
   // });

     onRefresh: (){
       _loadNames();
       return null;
     },

     onRefresh: (){
       setState(() => _loadNames());
     },

更新

_loadNames(){
   loading = true;

   new Future.delayed(Duration.zero, () => setState(() {
     _loadingState = 'loading...';
   }));