【问题标题】:How to display N snackbar in a single page with scaffold?如何使用脚手架在单个页面中显示 N 个小吃店?
【发布时间】:2021-04-08 21:15:33
【问题描述】:

我正在尝试向用户电子邮件发送重置密码链接。

案例 1:当用户没有注册电子邮件时显示一个快餐栏。
案例 2:发送电子邮件时显示一个快餐栏。
案例 3:如果出现错误,则显示一个快餐栏。

  final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();

这是构建函数:

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      key: _scaffoldKey,
      body: InkWell(...

此函数显示快餐栏: //小吃吧

  void showInSnackBar(String value) {
    ScaffoldMessenger.of(context).showSnackBar(SnackBar(
      content: Text(value),
      duration: const Duration(seconds: 5),
      action: SnackBarAction(
        label: 'OKAY',
        onPressed: () {
          ScaffoldMessenger.of(context).hideCurrentSnackBar();
        },
      ),
    ));
  }

我正在调用显示此按钮的小吃栏:

 CustomButton(
            name: 'Get Confirmation Email',
            color: Colors.redAccent,
            onPressed: () async {
              if (_formKey.currentState.validate()) {
                FocusScope.of(context).unfocus();
                try {
                  //Check if email already exist
                  List<String> res =
                      await _auth.checkEmail(_emailController.text);
                  print(res);
                  if (res == ['password']) {
                    await _auth.resetPassword(_emailController.text);
                    showInSnackBar('Email sent.Check your mail');
                  } else {
                    showInSnackBar('Email is not registered');
                  }
                } catch (e) {
                  showInSnackBar(e);
                }
              }
            },
          ) 

输出:[密码] 问题: 在 UI 上显示:Email is not registered,但它应该是Email sent.Check your mail。 我不明白这里出了什么问题。它没有得到正确的上下文吗?

【问题讨论】:

    标签: flutter


    【解决方案1】:

    您只需像这样测试您的状况

      String res = await _auth.checkEmail(_emailController.text);
      print(res);
      if (res=="password") {
                        await _auth.resetPassword(_emailController.text);
                        showInSnackBar('Email sent.Check your mail');
                      }
    

    【讨论】:

      猜你喜欢
      • 2020-04-07
      • 2017-09-06
      • 2022-10-08
      • 2016-03-13
      • 2022-12-17
      • 2020-10-28
      • 2016-04-01
      • 2018-05-04
      • 2020-05-18
      相关资源
      最近更新 更多