![](/img/trans.png)
[英]How to manually change app language with Flutter_localizations and Bloc?
[英]Change flutter localizations with bloc state managment problem
每次有人决定在不重新启动应用程序的情况下更改应用程序语言时,我都想更改应用程序语言。 一切都在使用 BLoC 进行。
我遇到的问题我真的不明白一件事。 如果我传递给MaterialApp
属性title
TodosLocalizations.of(context).translate("appTitle")
它会抛出一个错误:
The method 'translate' was called on null.
Receiver: null
Tried calling: translate("appTitle")
但是当我评论这一行并使用context
将相同的内容传递给onGenerateTitle
属性时,一切正常。
有人可以回答我为什么会发生这种情况,或者我可能不明白在这种情况下如何使用此属性(标题)。
当你调用 onGenerateTitle: (BuildContext context) => TodosLocalizations.of(context).title 时,它使用一个新的 BuildContext,它已经包含了 LocalizedDelagate(),所以它可以用 TodosLocalizations.of(context) 调用。
当您在同一个构建方法中不使用 onGenerateTitle 直接使用它时,您会在创建 LocalizedDelagate() 之前引用上下文实例,因此 TodosLocalizations.of(context) 不会返回任何内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.