在处理HTTP请求时如何解决“调用null的方法'cancel'”

时间:2019-05-29 15:33:20

标签: flutter flutter-layout flutter-dependencies flutter-animation flutter-test

我正在尝试使用Flutter应用程序中的API进行访问,但是每次单击“登录按钮”时都会出现这些错误

      final resp = await http.post("http://192.168.73.5/myserv/login.php", body: {
        "login": "login",
        "apid": "re0b53fd92d4b1593db1880az322d66ea9d4",
        "email": _email,
        "pass": _password,
      });
      var __data =json.decode(resp.body);

      if (__data.length == 0) {
      final snackbar = SnackBar(
        content: Text('Server error'),
      );
      scaffoldKey.currentState.showSnackBar(snackbar);
    } else if (__data[0]['resp'] == 'error') {
      final snackbar = SnackBar(
        content: Text('Password or email is incorrect!'),
      );
      scaffoldKey.currentState.showSnackBar(snackbar);
    } else if (__data[0]['resp'] == 'sucess') {
      final snackbar = SnackBar(
        content: Text('You are logged in'),
      );
      scaffoldKey.currentState.showSnackBar(snackbar);
      Navigator.of(context)
          .pushReplacement(MaterialPageRoute(builder: (context) => HomeApp()));
    }

    }

══╡小工具库引起的异常CA ═════════════════════ I / flutter(29517):在结束小部件树时引发了以下NoSuchMethodError: I / flutter(29517):方法“取消”在null上被调用。 I / flutter(29517):接收者:null I / flutter(29517):尝试调用:cancel() I / flutter(29517):引发异常时,这是堆栈:

1 个答案:

答案 0 :(得分:1)

我的建议是看一下您的处理方法。在那里,您可能会注意到一条语句,在从未初始化或使用过的,仅声明过的东西上调用cancel方法。就我而言,出现此错误是因为在处置方法下,我试图取消对我未使用的Firebase服务的预订。我从来没有给它附加一个侦听器,因此在尝试取消它时,Flutter抱怨说“取消方法是在null上调用的”。我在处理方法中删除了不必要的行,并解决了错误。希望这个解释对别人有帮助。