如何更新未来建造者的未来

Tam*_*ury 1 dart flutter

假设我有一个 FutureBuilder,它的 future 是 getBusinessListByRating(),它调用 API 来获取按评级排序的 BusinessList。然后我按下按钮按字母顺序对列表进行排序。当我这样做时,我希望未来是 getBusinessListByAlpha() 并重新渲染。

我怎样才能实现这个目标?

我尝试使用 setState 来更新 future,但它不起作用。

Cal*_*ves 5

在你的状态类中,你应该像这样初始化未来:

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)

这应该更新未来并重建小部件。