gpt4 book ai didi

Flutter Navigator 在异步函数中的使用问题

转载 作者:行者123 更新时间:2023-12-05 02:05:40 24 4
gpt4 key购买 nike

我正在编写一个应用程序,其中登录屏幕要求用户提供各种权限并使用 Facebook 登录。

在请求所有权限后,应用会移至下一个屏幕以询问更多信息,然后返回调用屏幕以完成其任务。

Navigator.push 似乎在异步函数中没有按预期工作。

void function() async {
<...do something 1...>
Navigator.pushNamed(context, screenName);
<...do something 2...>
}

预期行为会是<...do something 1...>将运行,然后 Navigator 将调用下一个屏幕,并且一次 Navigator.pop(context);被副屏调用,app会回到主屏执行<...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...>
}

可以解决问题,虽然我没试过。

关于Flutter Navigator 在异步函数中的使用问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63329980/

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