簡體   English   中英

避免使用 Future builder 重建屏幕

[英]Avoid rebuilding screen with Future builder

我正在使用FutureBuilderProvider從我的服務器獲取數據,這很好,因為它刪除了很多樣板,但缺點是 FutureBuilder 每次我更改屏幕時都會重建屏幕。

從性能的角度來看,這並不好,我更喜歡讓用戶在需要時使用拉動來刷新,並在需要時更改我的對象列表。

是否可以緩存未來的構建器或在InitState中使用它?

未來的建造者是否適合我的情況?

Future Builder (為了便於閱讀,省略了部分代碼):

FutureBuilder(
      future: Provider.of<MyProvider>(context, listen: false).fetch();,
      builder: (ctx, dataSnapshot) {
       ...
            final Data =
                Provider.of<MyProvider>(context, listen: false);
            return Consumer<MyProvider>(
              builder: (ctx, orderData, child) {
                ....
                itemCount: data.length,
                        itemBuilder: (ctx, i) => MyItem()
              },
            );
          }
        }
      },
    ),

RefreshIndicator可能是您正在尋找的(文檔解釋了它是如何工作的比我更好的https://api.flutter.dev/flutter/material/RefreshIndicator-class.ZFC35FDC70D5FC69D235883A8E2C7

您可以讓您的頁面watch您的Provider (可能是ChangeNotifierProvider ,以便它可以notifyListeners並觸發重建),並讓您的RefreshIndicator.onRefresh調用您的刷新方法來更新包裝在您的Provider中的小部件中的值(並在您的異步 function 運行時的頁面)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM