Flutter FutureBuilder没有进入builder?

Flutter FutureBuilder没有进入builder?,flutter,flutter-onpressed,Flutter,Flutter Onpressed,我想从createUser响应中获取两个参数。 我有一个升起的按钮,按下时我想使用FutureBuilder。 未来物业运作良好,但我无法进入建筑商物业。我什么都试过了,但找不到解决办法 ... RaisedButton( elevation: 5.0, onPressed: (){ FutureBuilder( future: createUser(usernameController.text, emailCon

我想从createUser响应中获取两个参数。 我有一个升起的按钮,按下时我想使用FutureBuilder。
未来物业运作良好,但我无法进入建筑商物业。我什么都试过了,但找不到解决办法

...
RaisedButton(
        elevation: 5.0,
        onPressed: (){
          FutureBuilder(
              future: createUser(usernameController.text, emailController.text, passwordController.text, '1', 1),
              builder: (context, snapshot) {
                if (snapshot.hasData) {
                  saveLogin(snapshot.data.userUnique);
                  nextScreen(
                      context,
                      UserDetail(
                        userUnique: snapshot.data.userUnique,
                      ));
                } else {
                  return MyHomePage();
                }
                return MyHomePage();
              });
        },
...


Future createUser(String username, String password, String email,
    String logintype, int userUnique) async {
  String url =
      "http://api.xx.com/api/register?username=$username&password=$password&email=$email&logintype=$logintype&userUnique=$userUnique";

  final response =
      await http.get(url, headers: {'Content-Type': 'application/json'});
  return registerFromJson(utf8.decode(response.bodyBytes));

我将FutureBuilder更改为async/await方法

谢谢你的帮助@pskink

onPressed: () async {
                            var xx = await createUser( usernameController.text, emailController.text, passwordController.text, '1',userUnique());
                            print(xx.responseCode.toString());
                            print(xx.userUnique.toString());
                            saveLogin(userUnique());

                          },

我将FutureBuilder更改为async/await方法

谢谢你的帮助@pskink

onPressed: () async {
                            var xx = await createUser( usernameController.text, emailController.text, passwordController.text, '1',userUnique());
                            print(xx.responseCode.toString());
                            print(xx.userUnique.toString());
                            saveLogin(userUnique());

                          },

FutureBuilder是一个小部件,我不认为它是你想要的。我认为您需要在这里展望未来,并在未来使用async/await或.then((){})。在onPressed方法中放置一个小部件并没有任何作用,也不会真正让senseI想从createUser响应中获取两个参数,这就是为什么我在onPressed之后使用futurebuilder。如果这是您的目标,您需要导航到其他类,比如Navigator.push(上下文,MaterialPageRoute(builder:(上下文)=>MyHomePage()),)@MousaAlribi导航到其他类没有问题。我想在createUser方法响应后决定导航。不要使用futurebuild尝试等待createUser,并将您想做的一切放在它之后。。在您获得creatuser Returns之前,它不会运行。FutureBuilder是一个小部件,我认为这不是您想要的。我认为您需要在这里展望未来,并在未来使用async/await或.then((){})。在onPressed方法中放置一个小部件并没有任何作用,也不会真正让senseI想从createUser响应中获取两个参数,这就是为什么我在onPressed之后使用futurebuilder。如果这是您的目标,您需要导航到其他类,比如Navigator.push(上下文,MaterialPageRoute(builder:(上下文)=>MyHomePage()),)@MousaAlribi导航到其他类没有问题。我想在createUser方法响应后决定导航。不要使用futurebuild尝试等待createUser,并将您想做的一切放在它之后。。在获得creatuser返回之前,它不会运行