【问题标题】:Flutter get library - Unhandled Exception: NoSuchMethodError: The getter 'overlay' was called on null. E/flutter (29207): Receiver: nullFlutter 获取库 - 未处理的异常:NoSuchMethodError:在 null 上调用了 getter 'overlay'。 E/颤振(29207):接收器:空
【发布时间】:2020-09-19 18:03:53
【问题描述】:

我想在没有上下文的情况下显示对话和 Toast 消息,因为我从一个没有上下文访问权限的方法调用它们。我发现get 库是合适的。它提到“您可以在没有上下文的情况下从代码中的任何位置打开对话框”,但是当我将示例中的任何简单代码放入我的应用程序代码中时,我得到了错误。这是我的测试代码:

import 'package:get/get.dart';

void main() {
  runApp(MyApp());

  const oneSec = const Duration(milliseconds: 250);
  new Timer.periodic(oneSec, (Timer t) => check());
}

void check() {
  if (result == PI) {   //global variables
    //showDialogue();
    //Get.snackbar('Hi', 'i am a modern snackbar');//error
    Get.dialog(SimpleDialog());//error
  }
}

void showDialogue(){
}

错误:

[ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: NoSuchMethodError: The getter 'overlay' was called on null.
E/flutter (29207): Receiver: null
E/flutter (29207): Tried calling: overlay
E/flutter (29207): #0      Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)
E/flutter (29207): #1      Get.overlayContext (package:get/src/get_main.dart:907:62)
E/flutter (29207): #2      Get.dialog (package:get/src/get_main.dart:225:16)
E/flutter (29207): #3      checkVentilator.<anonymous closure> (package:ventilator/main.dart:82:17)
E/flutter (29207): #4      _rootRunUnary (dart:async/zone.dart:1192:38)
.............................

FlutterToast 库代码在这里运行良好。但是我总是遇到Get 库代码的某种错误。即使这个 Get 代码是从构建为小部件的按钮的 onTapp 函数执行的。我不想使用GetMaterialAPP(),但它会修复这些错误吗?如何解决这个问题并显示简单的对话或 toast?

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    看看

    https://pub.dev/packages/get#installing

    就我而言,我只是忘记切换 MaterialApp。

    编辑:抱歉没有完全阅读问题,很高兴我找到了解决方案并想分享它。我尝试了很多东西,但没有 GetMaterialApp,Get 似乎无法掌握上下文。

    GetMaterialApp 到底有什么问题?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-28
      • 2022-11-17
      • 2020-11-03
      • 1970-01-01
      • 2022-01-16
      • 2021-01-11
      • 1970-01-01
      相关资源
      最近更新 更多