如何解决改变扑扑的局部化与集团状态管理问题
我希望每次有人决定更改应用程序语言而不重新启动应用程序时更改应用程序语言。一切都使用BLoC进行。
我遇到的问题我不太了解一件事。如果我将MaterialApp
属性title
TodosLocalizations.of(context).translate("appTitle")
传递给它,则会引发错误:
The method 'translate' was called on null.
Receiver: null
Tried calling: translate("appTitle")
但是当我注释此行并将相同的内容使用onGenerateTitle
传递到context
属性时,一切都正常工作。
有人可以回答我为什么发生这种情况,否则在这种情况下我可能不理解如何使用此属性(标题)。
解决方法
当调用onGenerateTitle:(BuildContext context)=> TodosLocalizations.of(context).title时,它将使用一个新的BuildContext,它已经包含LocalizedDelagate(),因此可以使用TodosLocalizations.of(context)进行调用。
当您在同一构建方法中不带onGenerateTitle的方式直接使用它时,您在创建LocalizedDelagate()之前引用了一个上下文实例,因此TodosLocalizations.of(context)不返回任何内容。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。