cod*_*ler 1 build navigator dart flutter statefulwidget
我的 flutter 应用程序显示启动画面 ( statefulWidget) 作为第一条路线。此路由显示动画,同时在后台调用 API 以获取一些数据。
一旦接收到数据并且动画完成,它就会导航到第二条路线。
一切正常,除了当调用Navigator导航到第二条路线时,会显示第二条路线,但我可以再次看到来自第一条路线的 API 的响应,即被调用。
事实证明,在构建第二条路由时,也会调用上一条路由的 build 方法,再次进行不必要的 API 调用。
如何避免这种行为?,我相信这一定是Flutter??
当前流程(非预期):SplashRoute(build) ---> Navigator ---> HomeRoute(build)+SplashRoute(build)
所需流程:SplashRoute(build) ---> Navigator ---> HomeRoute(build)
您要做的是针对该框架工作。这是徒劳的努力。相反,您应该使用该框架。这是为什么以及如何:
构建方法不应发出 API 请求。构建方法应该使用状态类的字段来生成没有任何副作用的 UI。
请将您的 API 调用移动到该initState方法,将它们的结果保存在您的状态类的字段中,setState并让该build方法在不产生任何副作用的情况下使用它们。
| 归档时间: |
|
| 查看次数: |
1404 次 |
| 最近记录: |