【问题标题】:How to manually trigger AsyncSnapshot error with FutureBuilder如何使用 FutureBuilder 手动触发 AsyncSnapshot 错误
【发布时间】:2020-09-11 23:22:40
【问题描述】:

我正在尝试在调用未来并获得响应时手动触发snapshot.hasError。 比如我有未来

   Future<dynamic> getJson() {
     Dio dio = Dio();
     var response = dio.get("https://www.jsononline.com/posts?id=9999");
     if (response.statusCode == 200) {
       return response;
     } else {
      // return AsyncSnapshot error
      }
    }

我尝试过return AsyncSnapshot.withError(ConnectionState.done, "An error occurred");,但在 FutureBuilder 中snapshot.hasError 仍然为空,而是转到snapshot.data

例如,如果我收到 404 消息,我希望能够触发错误。

【问题讨论】:

  • 然后使用 Future&lt;T&gt;.error() 构造函数(或简单地使用 throw yourError
  • @pskink Future&lt;T&gt;.error() 工作。谢谢

标签: flutter dart future snapshot


【解决方案1】:

返回

return Future.error("Error Info", StackTrace.fromString("StackTrace Error message"));

【讨论】:

    猜你喜欢
    • 2019-03-21
    • 1970-01-01
    • 2019-08-14
    • 1970-01-01
    • 2013-08-18
    • 2020-09-29
    • 1970-01-01
    • 2015-06-06
    • 1970-01-01
    相关资源
    最近更新 更多