如何加载json文件之前运行的扑动应用程序?



我必须在我的flutter应用程序的主要runApp之前加载json内容。我有一个Future函数(LoadLanguage))加载json文件在一个变量(LanguageData)),所以我可以在我的应用程序中使用上述变量的值:

Future<void> LoadLanguage(BuildContext context,String lng)
async {
String data = await DefaultAssetBundle.of(context).loadString("assets/translations/"+lng+".json");
LanguageData = jsonDecode(data);
}

问题是我的应用程序必须等待LanguageData被加载。但是我不能在加载应用程序之前使用LoadLanguage函数,因为在main()中没有上下文函数。如何使用LoadLanguagemain ()

?

我可以建议另一种方法。在didChangeDependencies ()方法或initState()方法中调用LoadLanguage()。这两个都在build()之前执行,因此你可以加载你的应用程序的其他部分需要的任何东西,这样当build()执行时,你的数据就存在了。

相关内容

  • 没有找到相关文章

最新更新