异步调用以从Route参数获取一些数据

时间:2020-07-08 23:00:58

标签: flutter

我有些困惑。假设我有一个有状态的小部件,需要获取一些数据。文档指出,不建议在build方法中使用它,因此我将其放在initState中。已记录在here中。

我还从此处的文档示例中实现了命名路由,这些路由是使用无状态小部件完成的。 Article reference here

当我尝试访问路由参数initState时会引发错误。该错误专门引发在ModelRoute调用上。

@override
void initState() {

 super.initState();
 TownDetailPageArguments args = ModalRoute.of(context).settings.arguments;
}

[enter image description here] 3

如果该代码被移至build方法,则可以正常工作。

所以,我的问题是,建议使用什么方法来访问用于在有状态小部件中获取数据的路由参数?

1 个答案:

答案 0 :(得分:0)

context方法中没有initState可用,为了使用of方法必须通过。您应该改为使用类似的方法didChangeDependencies,该方法可以访问context。两者之间的差异可以在here上找到。

用法示例(与initState相同,稍后再调用):

@override
void didChangeDependencies() {

 super.didChangeDependencies();
 TownDetailPageArguments args = ModalRoute.of(context).settings.arguments;
}