Flutter:使用自定义 ErrorWidget

Flutter: Use custom ErrorWidget

有没有办法显示(在生产中)自定义错误小部件而不是死机红屏?我不会更改框架代码,而且即使我们试图编程没有错误,我们也不能保证它会发生。

可以通过更改 ErrorWidget.builder

来更改默认错误呈现
ErrorWidget.builder = (errorDetails) {
  return Container(color: Colors.red);
}

使用ErrorWidget.builder代替main()函数,像这样

Future main() async {
  WidgetsFlutterBinding.ensureInitialized();
  ErrorWidget.builder = (FlutterErrorDetails details) => SomethingWrong();
  runApp(YourApp());
}

如果你只想在正式版应用程序上显示某些小部件,那么你可以使用kReleaseMode-

  if (kReleaseMode) {
    ErrorWidget.builder = (FlutterErrorDetails details) => SomethingWrong();
  }

注意:top-level kReleaseMode常量用于判断应用程序是否在发布模式下编译。