【发布时间】:2019-07-18 17:43:33
【问题描述】:
有没有办法显示(在生产中)自定义错误小部件而不是红屏死机?我不会更改框架代码,而且即使我们试图编程没有错误,我们也不能保证它会发生。
【问题讨论】:
有没有办法显示(在生产中)自定义错误小部件而不是红屏死机?我不会更改框架代码,而且即使我们试图编程没有错误,我们也不能保证它会发生。
【问题讨论】:
可以通过更改ErrorWidget.builder来更改默认错误渲染
ErrorWidget.builder = (errorDetails) {
return Container(color: Colors.red);
}
【讨论】:
main()中即可。一旦设置了这个处理程序,它将用于整个应用程序,直到设置另一个处理程序。
使用ErrorWidget.builder 代替main() 函数,像这样
Future main() async {
WidgetsFlutterBinding.ensureInitialized();
ErrorWidget.builder = (FlutterErrorDetails details) => SomethingWrong();
runApp(YourApp());
}
如果您只想在 Production 应用上显示某些 Widget,那么您可以使用 kReleaseMode-
if (kReleaseMode) {
ErrorWidget.builder = (FlutterErrorDetails details) => SomethingWrong();
}
注意:顶级 kReleaseMode 常量用于确定应用是否在发布模式下编译。
【讨论】: