Flutter-不可为空的实例字段'questionAnswer','questionText'必须初始化

Posted

技术标签:

【中文标题】Flutter-不可为空的实例字段\'questionAnswer\',\'questionText\'必须初始化【英文标题】:Flutter- Non-nullable instance field 'questionAnswer', 'questionText' must be initializedFlutter-不可为空的实例字段'questionAnswer','questionText'必须初始化 【发布时间】:2021-09-29 10:26:03 【问题描述】:

我正在通过在线课程学习 Flutter。我正在上课。所以我们必须创建一个具有字符串和布尔属性的类。下面是这个类:

class Question 
  String questionText;
  bool questionAnswer;

  Question(required String q, required bool a) 
    questionText = q;
    questionAnswer = a;
  

错误显示如下:

Non-nullable instance field 'questionText' must be initialized.

Non-nullable instance field 'questionAnswer' must be initialized.

请大家帮忙

【问题讨论】:

添加类初始化代码 你的在线课程可以用 Flutter 1 创建。Flutter 2 现在有Sound null safety,所以如果有可以null,你可以添加一个?,比如String? questionText;。跨度> Use an initializer list. 【参考方案1】:

根据新的空值安全规则,您不能在不指定其值或进行空值检查的情况下初始化任何数据类型的变量。试试这个:

class Question 
  String? questionText;
  bool? questionAnswer;

  Question(@required String q,@required bool a) 
    questionText = q;
    questionAnswer = a;
  

【讨论】:

以上是关于Flutter-不可为空的实例字段'questionAnswer','questionText'必须初始化的主要内容,如果未能解决你的问题,请参考以下文章

必须初始化不可为空的实例字段“_localizedStrings”

必须初始化不可为空的实例字段

必须初始化不可为空的实例字段“_selectedSize”

在不可为空的字段上验证 NotBlank

Schema graphql 错误给出“不能为不可为空的字段 Organisation.id 返回 null”为啥?

GraphQL 查询返回错误“不能为不可为空的字段返回 null”