Android 我的";如果;对账单不存在';不要在省道/颤振中工作

Android 我的";如果;对账单不存在';不要在省道/颤振中工作,android,ios,flutter,dart,Android,Ios,Flutter,Dart,我在futureBuilder中有一个if语句,它不返回任何东西。 另外,我的futureBuilder没有模型,您不应该为它定义模型。 当我的代码为true时,它将发送一个手机号码的代码,之后它将不会导航到另一个页面。 这是: onTap: () { final ID = _controller.text; final url = "

我在futureBuilder中有一个if语句,它不返回任何东西。 另外,我的futureBuilder没有模型,您不应该为它定义模型。 当我的代码为true时,它将发送一个手机号码的代码,之后它将不会导航到另一个页面。 这是:

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)的结果是。