我知道我们可以在属性中写一个条件为ternary operator
,如下所示
onTap: textType == "birth"
? () {
FocusScope.of(context).requestFocus(FocusNode());
showPicker(context, birthController,ref);
}
: null,
但是当涉及到多个条件时,我如何重写代码?如下面所示的代码被视为语法错误。
onTap:
if (textType == "birth"){
//do something
}else if(textType == "place"){
//do something
}else{
return null
}
4条答案
按热度按时间pgccezyw1#
必须使用嵌套的三元运算符。这有点丑陋,但这就是你要做的。
示例:
myVar ? "hello" : myVar2 ? "hey" : "yo"
这将检查第一个条件(
myVar
),如果失败,则检查第二个条件(myVar2
)。你也可以在这里做实际的检查,而不是只检查一个布尔值。例如:myVar == 14
或者,你可以从代码中调用一个函数,在那里你使用if/else if/else等。这是我会推荐的。
例如,从代码中调用
getProperGreeting()
,它将引用:xdnvmnnf2#
试试这个:
wfypjpf43#
你想使用自定义方法来处理有条件的onTap
或者使用如上所述的嵌套三元运算符。
fsi0uk1n4#
我的问题是如果我有“一次三个要求”怎么办。“if and”或“if or”条件仅用于两个要求。