是否可以为 Text 小部件提供默认值?
Posted
技术标签:
【中文标题】是否可以为 Text 小部件提供默认值?【英文标题】:Is it possible to supply a default value to a Text widget? 【发布时间】:2021-10-26 20:46:55 【问题描述】:正如问题所述,我想为文本小部件提供默认值。我有四个文本小部件。我在每个 Text Widget 中使用一个变量来显示数据。根据用户的不同,某些数据可能不存在,如果值不存在,我希望能够将这些文本小部件默认为 0 以防止错误。这可能吗?谢谢!
以下是目前的情况。
Text(
'\$$quarter['data'][0].funds',
style: TextStyle(
color: Colors.black,
fontWeight: FontWeight.bold),
),
【问题讨论】:
【参考方案1】:你可以试试这样的:
'\$$quarter['data'][0].funds ?? 0'
【讨论】:
【参考方案2】:您可以使用??
运算符提供默认值,该运算符返回左侧的表达式,除非该表达式的值为空,在这种情况下,它会计算并返回右侧的表达式(您可能需要添加问题如果quarter['data']
和quarter['data'][0]
可以为空,则条件属性访问的标记):
Text(
'\$$quarter['data']?[0]?.funds ?? 0',
style: TextStyle(
color: Colors.black,
fontWeight: FontWeight.bold,
),
)
要安全地访问quarter['data']
列表索引处的资金,您可以创建一个辅助方法:
int fundsAt(int index)
// This will return 0 if no element exists at the given index
return index >= 0 && index < quarter['data'].length
? quarter['data'][index].funds
: 0;
这里是使用fundsAt()
的例子:
Text(
'\$$fundsAt(0)',
style: TextStyle(
color: Colors.black,
fontWeight: FontWeight.bold,
),
)
【讨论】:
我试图解决的问题是,当它遇到数据不存在的文本小部件时,它会立即引发范围错误,因为可能没有四分之一['数据'][1].基金。可能只有一个 Quarter['data'][0].funds 等等。我想它会是空的,但我想不是。 从您所说的我了解到quarter['data']
返回一个对象列表并引发范围错误,因为您提供的索引在列表中不存在。请查看编辑后的答案。【参考方案3】:
你可以试试这些:
如果值可以为空,那么你可以试试这个:
Text(myNullableData ?? "Default value");
Text(myNullableData == null ? "" : "Default value");
??
运算符使用您的值(如果它不为空)。如果是,它将使用您想要的默认值。
否则如果some data may not exist depending
表示变量可以只是一个空字符串:'""',那么你可以使用?:
操作符:
Text(myData == "" ? "Default value" : myData);
【讨论】:
以上是关于是否可以为 Text 小部件提供默认值?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法为 sfWidgetFormFilterDate 小部件设置默认值?
Django Admin ForeignKey字段小部件选项和不一致的默认值
更新中带有小部件的 Django Form DateInput:丢失初始值