flutter - 无法读取 null 的属性“getPositionForOffset$1”
问题描述
我的 Flutter Web 应用程序中有一个错误,在运行时更改应用程序本地化后很少出现,这种动态行为使用provider
和包作为此处flutter_localizations
描述的官方文档实现,并更改了.
这是堆栈跟踪使用locale
darkTheme > fontFamily
MaterialApp
flutter build web --profile --dart-define=Dart2jsOptimization=O0
Uncaught TypeError: Cannot read property 'getPositionForOffset$1' of null
at RenderParagraph.hitTestChildren$2$position (main.dart.js:96010)
at RenderParagraph.hitTest$2$position (main.dart.js:90914)
at RenderShiftedBox_hitTestChildren_closure.call$2 (main.dart.js:98256)
at BoxHitTestResult.addWithPaintOffset$3$hitTest$offset$position (main.dart.js:90784)
at _RenderAppBarTitleBox.hitTestChildren$2$position (main.dart.js:98249)
at _RenderAppBarTitleBox.hitTest$2$position (main.dart.js:90914)
at RenderSemanticsAnnotations.hitTestChildren$2$position (main.dart.js:96532)
at RenderSemanticsAnnotations.hitTest$2$position (main.dart.js:90914)
at RenderBoxContainerDefaultsMixin_defaultHitTestChildren_closure.call$2 (main.dart.js:91033)
at BoxHitTestResult.addWithPaintOffset$3$hitTest$offset$position (main.dart.js:90784)
或者
Uncaught TypeError: Cannot read property 'getPositionForOffset$1' of null
at RenderParagraph.hitTestChildren$2$position (main.dart.js:96020)
at RenderParagraph.hitTest$2$position (main.dart.js:90924)
at RenderShiftedBox_hitTestChildren_closure.call$2 (main.dart.js:98266)
at BoxHitTestResult.addWithPaintOffset$3$hitTest$offset$position (main.dart.js:90794)
at RenderPositionedBox.hitTestChildren$2$position (main.dart.js:98259)
at RenderPositionedBox.hitTest$2$position (main.dart.js:90924)
at RenderConstrainedBox.hitTestChildren$2$position (main.dart.js:96542)
at RenderConstrainedBox.hitTest$2$position (main.dart.js:90924)
at RenderExcludeSemantics.hitTestChildren$2$position (main.dart.js:96542)
at RenderExcludeSemantics.hitTest$2$position
任何帮助将不胜感激
解决方案
解决方案是在请求本地化更改后何时重建最顶层的小部件树时提供一个UniqueKey()
to MaterialApp()
,因为先前计算的状态或约束不一定与新的fontFamily
或locale
. 另请注意,可能有另一种更有效的解决方案来解决这个问题,但这将完成这项工作。
推荐阅读
- powershell - 无法在 PowerShell 中组合 2 个命令
- .net-core - 通用存储库功能的使用
- php - Wordpress wpdb->更新多个“WHERE”ID
- javascript - Discord bot:从特定用户中删除特定角色
- python - DataFrame 列按给定列表排序,并为缺少的列添加空列
- c++ - 如何将if命令的条件语句保存为字符串?
- excel - 选择嵌套在 Excel VBA 中的案例
- ruby-on-rails - 无法删除有关 case_sensitive 的警告
- r - 如何根据R ggplot2中的y轴值重新排序x轴
- django - 选择出现在 POST 但未清理数据的小部件值