【问题标题】:non-nullable variable is not initialized不可为空的变量未初始化
【发布时间】:2021-08-23 23:59:59
【问题描述】:

我遇到了这个问题,它说必须初始化非 nuablle 变量

  static MediaQueryData _mediaQueryData;
  static double screenWidth;
  static double screenHeight;
  static double deafualtSize;
  static Orientation orientation;

  void init(BuildContext context) {
    _mediaQueryData = MediaQuery.of(context);
    screenWidth = _mediaQueryData.size.width;
    screenHeight = _mediaQueryData.size.height;
    orientation = _mediaQueryData.orientation;
  }
}

【问题讨论】:

  • 您面临的错误不在您显示的代码中。您在某处有一个非空参数(带有属性@required)。
  • 这很奇怪,因为我还没有在任何地方使用它们,它已经显示错误
  • 你能发布你的堆栈跟踪吗?你可以在你的问题之后添加..
  • 我已经添加了
  • 你能把里面的课程贴出来吗?您发布的代码太小了,难以理解

标签: flutter dart


【解决方案1】:

你需要做这样的事情

 static MediaQueryData _mediaQueryData = 0;
  static double screenWidth = 0;
  static double screenHeight = 0;
  static double deafualtSize = 0;
  static Orientation? orientation;
  
  void init(BuildContext context) {
    _mediaQueryData = MediaQuery.of(context);
    screenWidth = _mediaQueryData.size.width;
    screenHeight = _mediaQueryData.size.height;
    orientation = _mediaQueryData.orientation;
  }
}

每次使用方向变量时,都必须像方向一样调用它!
此错误是由于新的 null 安全功能造成的。您必须提供默认值或使用 ?在上面示例中的类型声明之后
希望能帮助到你。如果有其他问题请告诉我

【讨论】:

    猜你喜欢
    • 2021-07-06
    • 2016-02-24
    • 2012-03-25
    • 2015-07-04
    • 1970-01-01
    相关资源
    最近更新 更多