我知道我們可以在屬性中寫一個條件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
}
uj5u.com熱心網友回復:
您必須使用嵌套的三元運算子。這有點丑陋,但這就是你的做法。
例子:myVar ? "hello" : myVar2 ? "hey" : "yo"
這將檢查第一個條件 ( myVar),如果失敗,則檢查第二個條件 ( myVar2)。您還可以在此處進行實際檢查,而不是僅檢查布林值。例如:myVar == 14
或者,您可以只從代碼中呼叫一個函式,在其中使用 if/else if/else 等。這就是我的建議。
例如,getProperGreeting()從您的代碼呼叫,這將是指:
String getProperGreeting() {
... <if else chain> ...
}
uj5u.com熱心網友回復:
嘗試這個:
onTap: textType == "birth" ? () {
//do something when textType == "birth"
} : textType == "place" ? () {
//do something when textType == "place"
} : () {
//do something else
}
uj5u.com熱心網友回復:
您想使用自定義方法來處理有條件的 onTap
onTap: _onTapHandler
void _onTapHandler() {
if(textType=='birth'){
//do something
}else if(textType=='place'){
//do something else
}
else if(textType == 'foo'){
//bar
}
}
或者使用上面提到的嵌套三元運算子。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/522607.html
標籤:扑镖
下一篇:注冊后如何添加JSON影片
