flutter - Flutter:如何在处理页面时销毁所有 API 调用(Future 和 Stream)
问题描述
将底部导航栏从Tab1更快地切换到Tab2。在tab 1 API 调用仍在运行时切换到Tab2时,当我在Tab2内时,日志文件仍会显示Tab1 API 调用的结果。所以我现在想要做的是,每当我处理一个页面时,它都会处理所有内容。
我已经尝试过CancelableOperation.fromFuture方法,并将CancelableOperation cancel放在 dispose 函数中,日志文件显示方法 'cancel' 在 null 上被调用。
CancelableOperation cancellableOperation = CancelableOperation.fromFuture(
Future.value(await getApiData()),
onCancel: () =>
{debugPrint('onCancel')},
);
@override
void dispose() {
cancellableOperation.cancel();
super.dispose();
}
I/flutter ( 9421): Another exception was thrown: NoSuchMethodError: The method 'cancel' was called on null.
知道如何解决这个问题或任何更好的解决方案吗?
解决方案
推荐阅读
- html - 在 R 中使用 rvest 为网页抓取准备多个 URL
- c++ - 为什么运行向量数组后会出现分段错误错误
- python - 如何将 DataFrame[pvalue: double] 转换为实际值
- react-native - 如何在本机反应中将新参数传递到上一个屏幕?
- html - 如何为css中的按钮做部分边框?
- laravel - Laravel - 找不到类异常
- javascript - Expo SDK36 RN 0.61.4 中的提取返回未定义
- reactjs - 使用 React / Redux 时,调度一个仅更改 Redux 状态的操作与实际执行某些任务如何?
- c++ - C++ Unreal Engine 封装委托
- angular - 移动端的离子底部标签和桌面端的侧边菜单