gpt4 book ai didi

Flutter FutureBuilder 换页后会重新加载数据吗?

转载 作者:行者123 更新时间:2023-12-05 03:22:13 26 4
gpt4 key购买 nike

用例:

  1. FutureBuilder 加载数据并构建小部件*
  2. 我按下一个按钮 → 我改变页面/屏幕
  3. 我按一个按钮回到 futureBuilder 的屏幕

问题:futureBuilder 是否重新加载数据?

最佳答案

视情况而定

如果 Future 与 FutureBuilder 同时创建,则每次 FutureBuilder 的父级重建时,异步任务都会重新启动。

查看 official docs


换句话说,如果您直接在 future 参数中创建 Future,

  FutureBuilder(
future: Future.delayed(...),
builder: ...
);

然后任务在每次父级重新渲染时执行(因为每次执行构建方法时您实际上都在创建一个新的 Future)。

您需要先创建您的 Future(如 initState 函数),并将其存储在某个 prop 中,然后将其传递给 FutureBuilder。

有点像

late Future _myFuture;

initState() {
super.initState();
_myFuture = Future.delayed(...);
}

build(context) {
return FutureBuilder(
future: _myFuture,
builder: ...
)
}

因此在每个渲染中, promise 都是相同的(并且最终已经为 future 的渲染解决)

关于Flutter FutureBuilder 换页后会重新加载数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72770931/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com