Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
颤振onTap,REST调用在无限循环中结束_Rest_Flutter - Fatal编程技术网

颤振onTap,REST调用在无限循环中结束

颤振onTap,REST调用在无限循环中结束,rest,flutter,Rest,Flutter,我喜欢在flatter中创建一个简单的登录。当运行代码时,它会陷入无限循环。我已经发现在构建方法中调用RESTAPI是一种“糟糕的做法”,但我不知道如何避免这种情况 我如何解决这个问题?在不设置“build”方法中的功能的情况下,通过按键/点击处理REST调用的最佳方法是什么 我的登录视图如下(细节省略): 这被称为“PrimaryButton”,如下所示: onTap: widget.onTab(context) 我现在的问题是,每当我按下“登录”按钮时,它就会调用函数(为了测试,它是错误的

我喜欢在flatter中创建一个简单的登录。当运行代码时,它会陷入无限循环。我已经发现在构建方法中调用RESTAPI是一种“糟糕的做法”,但我不知道如何避免这种情况

我如何解决这个问题?在不设置“build”方法中的功能的情况下,通过按键/点击处理REST调用的最佳方法是什么

我的登录视图如下(细节省略):

这被称为“PrimaryButton”,如下所示:

onTap: widget.onTab(context)

我现在的问题是,每当我按下“登录”按钮时,它就会调用函数(为了测试,它是错误的),并陷入无限错误循环中。当我按下某处关闭对话框时,它再次被触发。它似乎也会被一次点击触发多次。

我发现了问题。它不是由代码引起的,而是由
onTab
lambda(
service.logiuser
)中使用的REST请求引起的。响应时间比预期长得多,因此调用无法正确返回


对于这类“错误”请求,我在REST请求上使用超时来解决问题。

我发现了问题。它不是由代码引起的,而是由
onTab
lambda(
service.logiuser
)中使用的REST请求引起的。响应时间比预期长得多,因此调用无法正确返回

对于这类“错误”请求,我在REST请求上使用超时来解决问题

  void performLogin(BuildContext context) {
    final String userName = _userName.text.trim();
    final String password = _password.text.trim();
    if(password.isEmpty || userName.isEmpty) {
      return;
    }

    UserService service = UserService();
    service.loginUser(userName, password).then((val) {
      Navigator.push(
          context, MaterialPageRoute(builder: (context) => MainLayout()));
    }).catchError((e) {
      showDialog(context: context,
          builder: (context) {
            return AlertDialog(
                content: Text("ERROR")
            );
          });
    });
  }
onTap: widget.onTab(context)