如何使用ChangeNotifierProvider为整个应用程序提供模型,并可以访问Localizations.localeOf(context)?

时间:2019-11-06 03:02:43

标签: flutter

为了为整个应用程序提供模型,我需要使用ChangeNotifierProvider作为MaterialApp的父级。

但是作为MaterialApp的父级,它无法访问Localizations.localeOf(context),因为此上下文需要来自MaterialApp(我想知道为什么访问设备信息需要上下文,但这就是它的工作方式) )。

所以我在这里很漂亮。

我的模型需要在启动时考虑设备的语言来加载内容。如果我将ChangeNotifierProvider放在MaterialApp的子代中,则可以获取语言环境,但是如果我使用Navigator.push(...)推送视图,则无法访问此模型。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

好。

我找到了plugin来获取语言,而无需上下文(应该如此)。

这样,我可以将ChangeNotifierProvider用作MaterialApp的父级,一切都会按预期进行。

我在Flutter上填写了功能请求,以解决获取设备信息的上下文需求。没必要。如果您同意,请随时认可:https://github.com/flutter/flutter/issues/44229