Flutter:避免导航到下一条路线时调用上一条路线的build()方法

问题描述 投票:0回答:1

我的Flutter应用正在显示启动画面(statefulWidget),这是第一条路线。这条路线显示的是动画,而在后台调用API来获取一些数据。

一旦接收到数据并且动画完成,它将导航到第二条路线。

[一切正常,除了在调用Navigator导航到第二条路线时,显示了第二条路线,但我可以再次看到来自正在调用的第一条路线的API的响应。

事实证明,当构建第二条路线时,也会调用前一条路线的build方法,从而再次进行不必要的API调用。

如何避免这种行为?,我相信这一定是Flutter上的错误?

当前流量(不需要):SplashRoute(构建)--->导航器---> HomeRoute(构建)+ SplashRoute(构建)

所需流程:SplashRoute(构建)--->导航器---> HomeRoute(构建)

flutter dart build navigator statefulwidget
1个回答
0
投票

您试图做的是针对框架进行工作。这是徒劳的。相反,您应该使用框架。这是原因和方式:

构建方法不应发出API请求。生成方法应使用状态类的字段来生成没有任何副作用的UI。

请将您的API调用移至initState方法,并用setState将其结果保存在状态类的字段中,并获得build方法以使用它们而不会产生任何副作用。

© www.soinside.com 2019 - 2024. All rights reserved.