假设我有一个 FutureBuilder,它的 future 是 getBusinessListByRating(),它调用 API 来获取按评级排序的 BusinessList。然后我按下按钮按字母顺序对列表进行排序。当我这样做时,我希望未来是 getBusinessListByAlpha() 并重新渲染。
我怎样才能实现这个目标?
我尝试使用 setState 来更新 future,但它不起作用。
在你的状态类中,你应该像这样初始化未来:
Future getBusinessListFuture;
@override
void initState() {
super.initState();
getBusinessListFuture = getBusinessListByRating(rating);
}
Run Code Online (Sandbox Code Playgroud)
在你的 FutureBuilder 中:
FutureBuilder(
future: getBusinessListFuture,
builder: ....
)
Run Code Online (Sandbox Code Playgroud)
要更新按钮上的未来,请单击:
onTap: () {
setState(() {
getBusinessListFuture = getBusinessListByRating(alphabetical);
});
}
Run Code Online (Sandbox Code Playgroud)
这应该更新未来并重建小部件。
| 归档时间: |
|
| 查看次数: |
2489 次 |
| 最近记录: |