在BottomSheet中使用Obx方式做状态管理,发现Controller未销毁掉。
return Obx(() {
return PageStateManager(
() {
return getContent(context);
},
state.loadState.value,
errorCode: state.errorCode.value,
errorMsg: state.errorMsg.value,
onRetryTap: state.onRetryTap,
);
});
分析代码发现Get.put的时候,主要是把Controller存在GetInstance的_singl Map中,如果controller没被移除,应该是delete方法没被调用。
查看get_navigation中src/bottomsheet/bottomsheet.dart代码,发现GetModalBottomSheetRoute在dispose中并没有做任何操作。
而src/dialog/dialog_route.dart代码中,GetDialogRoute重写了dispose,调用了GetInstance().removeDependencyByRoute进而调用了delete。
src/routes/d