首页 > 解决方案 > Flutter - 如何检查变量是否存在?

问题描述

我在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

从 Pick Activity 屏幕导航时,它将调用NewActivityConfig()构造函数 - 因为它显示一个空的 Config 页面供用户输入值

选择已经创建的活动时,它将调用newActivityConfig.fromNewActivityConfig(),并通过以前输入以填充字段的变量。

在我的 TextField 提示文本中,如果描述变量存在,我想显示用户的输入描述。但是,如果调用了第一个构造函数(没有传入任何用户以前的值)并且 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'),
      )
    );

标签: if-statementflutterdartwidget

解决方案


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

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

推荐阅读