Flutter 在颤振中从API获取数据后,如何导航到新屏幕?
在我的Flutter 在颤振中从API获取数据后,如何导航到新屏幕?,flutter,dart,Flutter,Dart,在我的main.dart文件中,我有一个Future从API(json文件)获取数据 在Future完成数据提取后,我可以通过什么方式导航到新屏幕?您可以这样做: yourFutureObject.then((){ //write the code you want to run as soon as your Future finishes Navigator.push(context, MaterialPageRoute(builder: (BuildContext context) =
main.dart
文件中,我有一个Future
从API(json
文件)获取数据
在
Future
完成数据提取后,我可以通过什么方式导航到新屏幕?您可以这样做:
yourFutureObject.then((){
//write the code you want to run as soon as your Future finishes
Navigator.push(context, MaterialPageRoute(builder: (BuildContext context) =>
YourNewPage()));
});
我使用了一些通用名称,因为您没有发布任何代码,但您可以编写希望在Future完成时运行的函数,并将其传递给Future的then方法,这样您就有了一个返回Future的方法
bool asyncResult2 = await asyncFunc2();
if(asyncResult2)
{
Navigator.push(
context,
MaterialPageRoute(builder: (context) => SecondRoute()),
);
}
AsyncFunction 2功能,当完成数据获取和分配(或其他任何操作)时然后所有这些都完成了,你只需将布尔值的未来传递给true,它表示每件事都成功完成了,你可以继续到第二页,或者如果布尔值为false,那么获取或分配就有问题了问题是:我应该在哪里写这个
initState()
?如果您想一眼就检查,那么可以使用initState。您可以创建一个函数,然后在initstate方法中调用它,然后插入我编写的代码段,在哪里可以编写?我能想到的唯一地方是initState()
内部,为了触发Future
,您可以在构建函数中编写它,因为您可以访问构建上下文。另外,因为您在这里使用的是Future对象,所以可以在initState()中使用它。有关更多信息,请参阅。如果在initState()中使用它时出现任何错误,您也可以查看一下,但我认为在那里使用它会很好