【发布时间】:2019-11-20 05:31:57
【问题描述】:
我有一个BottomNavigationBar 用于管理各种屏幕。 SnackBar 在一个屏幕上打开,当我转到另一个屏幕时,Snackbar 仍然打开。当我切换到另一个屏幕时,我需要立即关闭它。我知道必须在dispose 方法中调用removeCurrentSnackBar() 方法,但是当我尝试这样做时,我得到了错误:Looking up a deactivated widget's ancestor is unsafe。看起来context 已经被释放了。
所以问题就在标题中。
【问题讨论】:
-
你确定在
super.dispose()之前调用.removeCurrentSnackBar()吗? -
是的。我将这行代码放在 super.dispose 之前。有些消息还说
state is not stable in dispose method。我为 Scaffold 使用了全局键,但currentState在dispose方法中的值已经为空。 -
@BambinoUA 你找到解决方案了吗?我现在面临同样的问题
-
@SardobekR,看看我的回答。