функция обратного вызова не работает с кнопкой

#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)),
      ),


    );