entry是OverlayEntry类的实例
entry?.remove();
错误
Package:flutter/src/widgets/overlay.dart': Failed assertion: line 133 pos 12: '_overlay != null':
答案 0 :(得分:6)
如果没有在Overlay中插入OverlayEntry,而您尝试调用remove方法,则会收到该错误:Failed assertion: '_overlay != null'
。因此,在删除条目之前,请添加条件以判断其是否合法。它更像是一个hack代码,您可以添加一个isEntryNotNull
之类的变量以方便和理解。然后,当您将新的OverlayEntry插入Overlay中时,将其重新分配给entry变量,则条件将正常工作。
if (entry != null) {
entry.remove();
entry = null;
}
答案 1 :(得分:1)
已解决
经过大量研究,我尝试了一个简单的解决方案。
entry?.remove();
entry = null;