【发布时间】:2020-10-17 20:23:22
【问题描述】:
我想在使用小部件时有条件地传递一个参数。有什么办法吗?
...
return ListTile(
title: Text("${product.name}"),
// want to conditionally pass subtitle, which is not the right syntax (???)
if(condition) subtitle: Text("subtitle"),
// I know about this
subtitle: condition? Text("subtitle"): null,
);
},
...
我知道我们可以在此处使用三元运算符有条件地将值作为 null 传递,但我正在寻找的是跳过参数本身。
以上示例适用于ListTile 小部件。但我的好奇心是知道为任何小部件执行此操作的语法。
【问题讨论】:
-
你问的是
optional named parameters吗?如this? -
没有。我正在询问在基于某些条件调用时包含/排除参数的方法。
-
你能再举一个例子或用例来帮助更好地理解这个问题吗?您可能在其他语言中使用过类似的东西?
-
同样在
optional named parameters中,您可以完全跳过提供参数。就像前任一样。Container()可以有padding或者你可以跳过它。 -
最接近我在 Javascript 中可以做的事情是:``` function func(a,b,c){ console.log(...arguments); } func(...[ 1, 2, ...(false ? [3] : []) ]); ```