Flutter 如何在关闭屏幕时关闭打开的SnackBar?

Flutter 如何在关闭屏幕时关闭打开的SnackBar?,flutter,dart,snackbar,Flutter,Dart,Snackbar,我有一个底部导航栏来管理各种屏幕。SnackBar在一个屏幕上打开,然后我转到另一个屏幕。。。snackbar仍然打开。当切换到另一个屏幕时,我需要立即关闭它。我知道必须在dispose方法中调用.removeCurrentSnackBar(),但当我尝试这样做时,我得到了错误:查找停用小部件的祖先是不安全的。看起来已经处理了Scaffold和context 所以问题在标题中。我记得我在弹出的小部件的initState中调用了removeCurrentSnackbar。我记得我在弹出的小部件的i

我有一个底部导航栏来管理各种屏幕。SnackBar在一个屏幕上打开,然后我转到另一个屏幕。。。snackbar仍然打开。当切换到另一个屏幕时,我需要立即关闭它。我知道必须在
dispose
方法中调用.removeCurrentSnackBar(),但当我尝试这样做时,我得到了错误:
查找停用小部件的祖先是不安全的
。看起来已经处理了
Scaffold
context


所以问题在标题中。

我记得我在弹出的小部件的
initState
中调用了
removeCurrentSnackbar

我记得我在弹出的小部件的
initState
中调用了
removeCurrentSnackbar

你确定要调用
removeCurrentSnackbar()
super.dispose()之前的
?是。我将这些代码行放在super.dispose之前。一些消息还说,dispose方法中的状态不稳定。我对Scaffold使用了全局键,但是
dispose
方法中的
currentState
的值已经为空。@BambinoUA找到解决方法了吗?我也面临同样的问题now@SardobekR,请参阅我的答案。您确定要在
super.dispose()
之前调用
.removeCurrentSnackBar()
?是的。我将这些代码行放在super.dispose之前。一些消息还说,dispose方法中的状态不稳定。我对Scaffold使用了全局键,但是
dispose
方法中的
currentState
的值已经为空。@BambinoUA找到解决方法了吗?我也面临同样的问题now@SardobekR,看看我的答案。