【问题标题】:Error message - Alert Message Not Appearing错误消息 - 未出现警报消息
【发布时间】:2020-12-23 11:27:35
【问题描述】:

我在界面上放置一条消息,向用户提供有关登录或注册错误的信息。

错误不提供错误,应用程序继续运行。

但是,错误消息或状态不会传递到不出现的小部件_showAlert。

    _signup() async {
    AuthNotifier authNotifier = Provider.of<AuthNotifier>(context, listen: false);
            {
      setState(() {
      });
      final status =
          await  signup(_user, authNotifier);
                if (status == AuthResultStatus.successful) {
                // Navigate to success screen
                Navigator.pushAndRemoveUntil(
          context,
          MaterialPageRoute(builder: (context) => SecondPage()),
          (r) => false);
      } else {
        final errorMsg = AuthExceptionHandler.generateExceptionMessage(status);
        _showAlert(errorMsg);
      }
  }
}

  _showAlert(errorMsg) {
    if (errorMsg != null) {
      return Container(
        color: Colors.amberAccent,
        width: double.infinity,
        padding: EdgeInsets.all(8.0),
        child: Row(
          children: <Widget>[
            Padding(
              padding: const EdgeInsets.only(right: 8.0),
              child: Icon(Icons.error_outline),
            ),
            Expanded(
              child: AutoSizeText(
                errorMsg,
                maxLines: 3,
              ),
            ),
            Padding(
              padding: const EdgeInsets.only(left: 8.0),
              child: IconButton(
                icon: Icon(Icons.close),
                onPressed: () {
                  setState(() {
                    errorMsg = null;
                  });
                },
              ),
            )
          ],
        ),
      );
    }
    return SizedBox(
      height: 0,
    );
  }

【问题讨论】:

    标签: firebase flutter signing


    【解决方案1】:

    您正在返回一个不显示对话框的小部件。要显示一个对话框试试这个

    _showAlert(errorMsg, BuildContext context) {
      if (errorMsg != null) {
        showDialog(
          context: context,
          builder: (BuildContext context) =>
              Dialog(
                child: Container(
                  // ...
                ),
              ),
        );
      }
    }
    

    【讨论】:

    • 感谢 DM_tr,我想在不使用对话框的情况下将其包含在界面中。我会暂时保留它。
    • 看看这个包pub.dev/packages/get。这可能会有所帮助
    猜你喜欢
    • 2018-06-03
    • 1970-01-01
    • 2020-03-18
    • 2012-08-22
    • 2012-04-20
    • 1970-01-01
    • 2014-02-21
    • 2013-07-18
    • 2017-03-15
    相关资源
    最近更新 更多