if-statement - 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'),
)
);
解决方案
activity
在访问其属性或行为之前,您应该检查其自身是否为空。
尝试这个:
final description = TextField(
decoration: InputDecoration(
hintText:(widget.activity != null ? widget.activity.getDescription() : 'Enter an activity description'),
)
);
推荐阅读
- android - 如何使应用程序显示在android包管理器中但不在图标中
- html - 打开键盘时导航栏溢出?
- c# - 如何根据属性压缩 2 个序列(压缩、连接)
- python - 在运行时构建不同执行步骤的设计模式
- c++ - 定义数组中元素的数量
- c# - GLIBC_2.2.5 未在带有链接时间参考的文件 libpthread.so.0 中定义
- powerbi - 使用 M 或 DAX 生成包含数百个不同类别的单列表
- machine-learning - 在同一个图中绘制多个模型
- liferay - 升级到 Liferay 7.3 后覆盖 user_action.jsp 失败
- python - 在 python 中构造一个包,使得外部导入不显示在子模块中