[英]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.