Flutter:在异步 Api 调用后显示警报对话框

Anu*_*var 6 flutter flutter-layout

这是获取登录响应的代码。如果出现错误,我想显示一个警报对话框,说明登录期间出现错误。

Future<String> login(String username, String password) async {
    Map<String, dynamic> params = {
       'username': username,
       'password': password,
    };

    final response = await http.post('apiurl', body: params);

    if (response.statusCode != 200)
       throw Exception(response.body);

    return response.body;
}
Run Code Online (Sandbox Code Playgroud)

我正在从调用登录的地方添加代码。_loginController中有一个 TODO ,我想在其中显示一个显示错误的警报对话框。

class LoginWidgetState extends State<LoginWidget> {
  var _usernameController = new TextEditingController();

  var _passwordController = new TextEditingController();

  void _loginButtonClickHandler() {
    var username = _usernameController.text;
    var password = _passwordController.text;

    login(username, password).then((response) {

    }).catchError((e) {
      //TODO : show an Alert Here
    });
  }

  @override
  Widget build(BuildContext context) {
    var container = Center(
      child: Container(
    child: Column(
      children: <Widget>[
        TextField(
          decoration: InputDecoration(
            hintText: "username",
          ),
          controller: _usernameController,
        ),
        TextField(
          obscureText: true,
          decoration: InputDecoration(hintText: "password"),
          controller: _passwordController,
        ),
        RawMaterialButton(
          onPressed: _loginButtonClickHandler,
          child: Text("Login"),
        )
       ],
     ),
    ),
   );

   return container;
  }

}
Run Code Online (Sandbox Code Playgroud)

Din*_*ian 1

请参阅此处显示对话框。

发送context_loginButtonClickHandler即可完成。干杯