簡體   English   中英

如何在Flutter上更新初始state

[英]How to update the initial state on Flutter

我正在構建一個 flutter 頁面,向用戶顯示存儲在后端的信用卡列表,並允許用戶刪除現有的卡。

為了從后端獲取卡片,我使用initState() 請注意controller.getCreditCards()返回一個Future<List<CreditCardSummary>>

  @override
  void initState() {
    super.initState();
    _futureCreditCards = controller.getCreditCards();
  }

然后使用FutureBuilder呈現此列表,就像文檔建議的那樣:

  Widget build(BuildContext context) {
    return FutureBuilder<List<CreditCardSummary>>(
        future: _futureCreditCards,
        builder: (context, snapshot) {
          if (snapshot.hasData) {
            return Scaffold(
              // My page that renders all the cards goes here
              // Inside this future builder I can access the cards list with snapshot.data
            );
          } else if (snapshot.hasError) {
            return Text('ERROR');
          }
          // Show a loading screen while the data is beeing fetched:
          return const CircularProgressIndicator();
        });
  }

這一切都很好,只有當我需要更新這些數據時問題才會出現。 例如,當用戶刪除信用卡時,我想從列表中刪除該卡並使用新版本的列表重新呈現頁面,但我不知道這樣做的好方法。

為了獲取更新的數據/刷新 FutureBuilder,您需要重新分配 future 變量。

對於你的情況,每當你想更新時,

_futureCreditCards = controller.getCreditCards();
setState((){});

暫無
暫無

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

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