[英]My "If" statement doesn't work in dart/flutter
我在 futureBuilder 中有一個 if 語句,它沒有返回任何東西。 另外,我的 futureBuilder 沒有 model 並且您不應該為它定義 model 。 當我的代碼為真時,它會發送一個手機號碼的代碼,然后它不會導航到另一個頁面。 這里是:
onTap: () {
final ID = _controller.text;
final url = "https://************/api/User/CheckHasUser?id=$ID";
Future fetchLogin() async {
final response = await http.get(url);
if (response.statusCode == 200) {
return jsonDecode(response.body);
} else {
throw Exception('Failed');
}
}
var Id = ID != null ? true : false;
FutureBuilder(
future: fetchLogin(),
builder: (context, snapshot){
if(Id == true){
Navigator.of(context).push(MaterialPageRoute(
builder: (context) => getCodePage(),
));
}else{
print('s');
}
},
);
},
FutureBuilder 是一個小部件,用於對未來結果做出反應或在等待時顯示加載 animation。 它的 builder-Function 應該根據快照返回一個 Widget。 但是您的 FutureBuilder 不在 Widget 樹中的任何位置,因此它沒有被構建並且什么也不做。 如果您只想對 Future 的完成及其結果做出反應,請改用fetchLogin().then(...)
。
編輯:您沒有 FutureBuilder 的代碼:
final ID = _controller.text;
final url = "https://************/api/User/CheckHasUser?id=$ID";
Future fetchLogin() async {
final response = await http.get(url);
if (response.statusCode == 200) {
return jsonDecode(response.body);
} else {
throw Exception('Failed');
}
}
var Id = ID != null;
fetchLogin().then((resultOfFuture){
if(Id){
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => getCodePage(),
));
}else{
print('s');
}
}
);
我希望這可以進一步幫助你:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.