【发布时间】:2022-01-16 06:32:43
【问题描述】:
我只想在用户点击返回按钮或滑回原始页面时取消某些页面加载(对 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(),
);
}
}
【问题讨论】: