gpt4 book ai didi

flutter - 如何在 StatelessWidget.build 方法中调用异步方法?

转载 作者:行者123 更新时间:2023-12-03 03:35:06 25 4
gpt4 key购买 nike

我在 flutter 中有以下代码。在 initialRoute:属性,需要调用isLoggedIn()方法,它是一个异步函数。我收到一条错误消息,提示我需要调用 awaitasync功能。但是 build方法被其父类覆盖,该父类不是 async方法。如何调用 await在被覆盖的方法中?

class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: '',
theme: ThemeData(
primarySwatch: Colors.blue,
),
initialRoute: await isLoggedIn() ? '/': '/login',
routes: <String, WidgetBuilder>{
'/': (BuildContext context) {
return MyHomePage(title: 'Home Page');
},
'/login': (BuildContext context) {
return Login();
},
}

);
}
}

最佳答案

据我说,不可能做你想做的事。

正如您提到的 isLoggedIn 是异步的,这将需要时间来计算,同时构建方法完成构建。您可以使用 future build 者 在无状态小部件中执行异步任务,但由于这是您的初始路线,您必须提供它,所以它再次不起作用。

我建议您添加启动画面,您可以在其中计算平均调用该方法并找出导航。

关于flutter - 如何在 StatelessWidget.build 方法中调用异步方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61558607/

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