Flutter-如何检查变量是否存在?

时间:2019-09-08 12:53:25

标签: if-statement flutter dart widget

我在 new_activity_config.dart 中有两个构造函数。

  NewActivityConfig(this.activityType, {Key key, this.activity}) : super(key: key);
  NewActivityConfig.fromNewActivityConfig(this.activity, {Key key, this.activityType}) : super(key: key);

一个采用 activityType :this.name,this.image

另一个使用活动:this.name,this.image,this.status,this.scheduledStart,this.mapped,this.description,this.statistics,this.completionDate,this .duration

从“选择活动”屏幕导航时,它将调用 NewActivityConfig()构造函数-因为它显示了一个空的Config页面供用户输入值

在选择一个已创建的活动时,它将调用 NewActivityConfig.fromNewActivityConfig(),并传入先前输入的变量以填充字段。

在我的TextField hintText中,如果存在 description 变量,我想显示用户的输入描述。但是,如果调用了第一个构造函数(未传递任何用户的先前值),则无法调用getDescription(),因为尚未传递-并收到错误:The method getDescription() was called on null

如何检查它是否存在而不会出现空错误?

final description = TextField(
      decoration: InputDecoration(
        hintText:(widget.activity.getDescription() != null ? widget.activity.getDescription() : 'Enter an activity description'),
      )
    );

1 个答案:

答案 0 :(得分:0)

在访问activity本身的属性或行为之前,应检查其自身是否为空。
试试这个:

   final description = TextField(
      decoration: InputDecoration(
        hintText:(widget.activity != null ? widget.activity.getDescription() : 'Enter an activity description'),
      )
    );