Ant*_*ers 4 flutter flutter-navigation
我正在编写一个应用程序,其中登录屏幕要求用户提供各种权限并使用 Facebook 登录。
请求所有权限后,应用程序将移动到下一个屏幕以询问更多信息,然后返回到调用屏幕以完成其任务。
然而,Navigator.push 似乎在异步函数中没有按预期工作。
void function() async {
<...do something 1...>
Navigator.pushNamed(context, screenName);
<...do something 2...>
}
Run Code Online (Sandbox Code Playgroud)
预期的行为
是<...do something 1...>运行,然后 Navigator 将调用下一个屏幕,一旦Navigator.pop(context);被第二个屏幕调用,应用程序将返回第一个屏幕并执行<...do something 2...>。这是它在应用程序中的所有其他屏幕中的工作方式。
调用实际行为
<...do something 1...>,然后<...do something 2...>在某个时刻触发导航器。
这导致我必须采取各种措施来尝试通过此方式阻止应用程序的流程,但这似乎是非常奇怪的行为。
有其他人经历过这种情况,或者可以给我解决方法吗?这甚至不涉及await函数的各个部分,说它让我发疯有点轻描淡写。
非常感谢任何帮助!
我相信Navigator.pushNamed返回一个Future. 因此,也许如果您只是添加await这样的内容:
void function() async {
<...do something 1...>
await Navigator.pushNamed(context, screenName);
<...do something 2...>
}
Run Code Online (Sandbox Code Playgroud)
它可以解决这个问题,虽然我没有尝试过。
| 归档时间: |
|
| 查看次数: |
7330 次 |
| 最近记录: |