【发布时间】:2020-11-29 10:55:06
【问题描述】:
我正在编写一个应用程序,其中登录屏幕要求用户提供各种权限并使用 Facebook 登录。
在请求所有权限后,应用程序会移至下一个屏幕以询问更多信息,然后返回调用屏幕以完成其任务。
然而,Navigator.push 在异步函数中似乎无法正常工作。
void function() async {
<...do something 1...>
Navigator.pushNamed(context, screenName);
<...do something 2...>
}
预期行为
将是<...do something 1...> 将运行,然后Navigator 将调用下一个屏幕,一旦Navigator.pop(context); 被第二个屏幕调用,应用程序将返回到第一个屏幕并执行<...do something 2...>。这就是它在应用程序中所有其他屏幕上的工作方式。
实际行为
调用<...do something 1...>,然后调用<...do something 2...>,然后在某个时候导航器被触发。
这导致我不得不做各种尝试阻止应用程序通过它的流程,但这似乎是非常奇怪的行为。
有没有其他人经历过这种情况,或者可以给我一个解决方法?这甚至不涉及函数的await 部分,说它让我发疯有点轻描淡写。
非常感谢任何帮助!
【问题讨论】:
标签: flutter flutter-navigation