Android 我的";如果;对账单不存在';不要在省道/颤振中工作
我在futureBuilder中有一个if语句,它不返回任何东西。 另外,我的futureBuilder没有模型,您不应该为它定义模型。 当我的代码为true时,它将发送一个手机号码的代码,之后它将不会导航到另一个页面。 这是:Android 我的";如果;对账单不存在';不要在省道/颤振中工作,android,ios,flutter,dart,Android,Ios,Flutter,Dart,我在futureBuilder中有一个if语句,它不返回任何东西。 另外,我的futureBuilder没有模型,您不应该为它定义模型。 当我的代码为true时,它将发送一个手机号码的代码,之后它将不会导航到另一个页面。 这是: onTap: () { final ID = _controller.text; final url = "
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是一个小部件,用于在等待加载动画时对未来结果做出反应或显示加载动画。其生成器函数应根据快照返回一个小部件。但是您的FutureBuilder不在Widget树中的任何位置,因此它没有被构建,并且什么也不做。 如果您只是想对未来及其结果的完成做出反应,请使用
fetchLogin()。然后(…)
编辑:
没有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');
}
}
);
我希望这能进一步帮助您:)非常感谢您,但请您举一个关于我的代码的例子好吗?再次感谢您,我还有一个问题。什么是“未来的再咨询”?对我来说,它返回的是FALSE。resultOfFuture是你未来的结果。因此,在您的示例中,如果statusCode为200,那么jsonDecode(response.body)的结果是。