首页 > 解决方案 > 必须初始化不可为空的实例字段“buttonStartingYpoint”

问题描述

这是我的模型课。我正在尝试获取 http 响应并将其打印到我的应用程序中。

在第 12 行 DataModel 它向我显示了这个错误

“必须初始化不可为空的实例字段‘buttonStartingYpoint’。尝试添加初始化表达式,或在此构造函数中添加字段初始化,或将其标记为‘延迟’。”

必须初始化不可为空的实例字段“buttonHeight”。尝试添加初始化表达式,或在此构造函数中添加字段初始化程序,或将其标记为“迟到”

  String buttonLetter;
  int buttonHeight;
  int buttonWidth;
  int buttonStartingXpoint;
  int buttonStartingYpoint;

  DataModel(
      {required this.buttonLetter,
      required this.buttonHeight,
      required this.buttonWidth,
      required this.buttonStartingXpoint,
      required this.buttonStartingYpoint});

  DataModel.fromJson(Map<String, dynamic> json) {
    buttonLetter = json['Button_letter'];
    buttonHeight = json['Button_height'];
    buttonWidth = json['Button_width'];
    buttonStartingXpoint = json['Button_Starting_xpoint'];
    buttonStartingYpoint = json['Button_Starting_ypoint'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['Button_letter'] = this.buttonLetter;
    data['Button_height'] = this.buttonHeight;
    data['Button_width'] = this.buttonWidth;
    data['Button_Starting_xpoint'] = this.buttonStartingXpoint;
    data['Button_Starting_ypoint'] = this.buttonStartingYpoint;
    return data;
  }
}

我尝试添加后期,但随后在后期和模型中都显示错误。我是新来的颤振

标签: flutterflutter-test

解决方案


您必须在初始化列表中初始化它们。当您到达构造函数主体时,为时已晚。这是修复:

  DataModel.fromJson(Map<String, dynamic> json) :
    buttonLetter: json['Button_letter'],
    buttonHeight: json['Button_height'],
    buttonWidth: json['Button_width'],
    buttonStartingXpoint: json['Button_Starting_xpoint'],
    buttonStartingYpoint: json['Button_Starting_ypoint'];

供参考:https ://dart.dev/guides/language/language-tour#constructors


推荐阅读