当用户按下Flutter中的后退按钮时,如何取消API请求



只有当用户点击后退按钮或滑回原始页面时,我才想取消一些页面加载(对API的请求(。

例如,当用户在主页选项卡中点击文章选项卡时,应用程序将请求API获取文章列表或错误消息(显示弹出窗口(,但无法获取。

但目前,即使用户在请求时返回主页选项卡,请求也不会被取消,因此主页选项卡上会弹出错误消息。

有没有什么方法可以安全地取消初始化功能,如下所示?

Article tab

Future<void> initialize() async {
WidgetsBinding.instance!.addObserver(this);
Future.delayed(const Duration(milliseconds: 250), () {
_loadArticleContents();
});
}
Future<void> _loadArticleContents() async {
try {
final result = await _apiClient.sendRequest(
MatomeArticleRequest(id: _identity.id),
);
if (result.item2 != null) {
// I want to cancel this to be shown when user go back to some other tabs
LoadErrorDialog.show(
onTap: () => _navigator.pop(),
);
return;
}
} catch (e) {
Log.debug(e);
LoadErrorDialog.show(
onTap: () => _navigator.pop(),
);
}
}

在社交页面中检查此插件https://pub.dev/packages/http_client_helper

最新更新