#dart #flutter
#dart #флаттер
Вопрос:
Я пытаюсь добавить забытый пароль на свою страницу входа, когда я нажимаю на кнопку отправки HTTP-запроса, отправленного на сервер,
что я сделал, так это поместил свой HTTP-запрос внутрь Future function и я вызываю функцию в onPressed, но ничего не происходит, что-то не так??
моя HTTP-функция
Future<Map<String, dynamic>> send (String username, String email) async{
final Map<String, dynamic> authData ={
'Username' :username,
'Password': email,
};
final http.Response response = await http.post('url',
body: json.encode(authData),
headers: {'Content-Type': 'application/json'},
);
final Map<String, dynamic> responseData = json.decode(response.body);
bool hasError = true;
String message = 'Data is not Valid';
if ( responseData["StatusCode"] == 200 ) {
print('forget password');
showDialog(context:context, builder: (BuildContext context){
return AlertDialog(
title: Text("Note!"),
content: Text('check your email'),
actions: <Widget>[
FlatButton(child: Text("OK"),
onPressed: (){
Navigator.of(context).pop();
},)
],);
});
} else if(responseData.containsKey("StatusCode") != '200') {
message='invalid username or email ';
print('error');
}
return {'success': !hasError, 'message': message};
}
и обратный вызов функции
final sendbutton = Padding(
padding: EdgeInsets.symmetric(vertical: 16.0),
child:RaisedButton(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(24),
),
onPressed: ()=> send,
padding: EdgeInsets.all(12),
color: Colors.orangeAccent,
child: Text('Send', style: TextStyle(color: Colors.white)),
),
);
что-то не так?
Ответ №1:
вам следует исправить способ вызова функции отправки
final sendbutton = Padding(
padding: EdgeInsets.symmetric(vertical: 16.0),
child:RaisedButton(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(24),
),
onPressed: ()=> send(username,email),
padding: EdgeInsets.all(12),
color: Colors.orangeAccent,
child: Text('Send', style: TextStyle(color: Colors.white)),
),
);