【问题标题】:Flutter: Use custom ErrorWidgetFlutter:使用自定义 ErrorWidget
【发布时间】:2019-07-18 17:43:33
【问题描述】:

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

【问题讨论】:

    标签: flutter flutter-layout


    【解决方案1】:

    可以通过更改ErrorWidget.builder来更改默认错误渲染

    ErrorWidget.builder = (errorDetails) {
      return Container(color: Colors.red);
    }
    

    【讨论】:

    • 是否有任何特定的位置我必须添加这个 sn-p 代码(例如在 main 中,或页面的每个构建方法中)??
    • 这真的取决于你想在这里实现什么。这取决于你
    • 是静态字段,设置在main()中即可。一旦设置了这个处理程序,它将用于整个应用程序,直到设置另一个处理程序。
    【解决方案2】:

    使用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 常量用于确定应用是否在发布模式下编译。

    【讨论】:

      猜你喜欢
      • 2019-08-18
      • 2017-11-14
      • 2021-10-04
      • 1970-01-01
      • 2020-03-18
      • 1970-01-01
      • 2019-05-08
      • 2021-02-23
      相关资源
      最近更新 更多