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