Package:flutter / src / widgets / overlay.dart':失败的断言:第133行pos 12:'_overlay!= null':

时间:2018-07-20 13:42:24

标签: dart flutter

entry是OverlayEntry类的实例

entry?.remove();

错误

Package:flutter/src/widgets/overlay.dart': Failed assertion: line 133 pos 12: '_overlay != null':

2 个答案:

答案 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;