编辑: 下面更好的答案。
显然, 您不能getData(context)
在此期间访问initState
(更具体:在完成之前)。
我相信,原因是
getData试图
InheritedWidget在树中查找祖先,但是树正在构建中(您的窗口小部件是在父窗口小部件的过程中创建的
build)。
显而易见的解决方案是将
getData查找延迟到以后的某个时间点。有几种方法可以实现:
- 将查找延迟到以后的时间。
scheduleMicrotask
应该工作正常。 - 在第一个
build
通话中查找它。您可以isInitialized
在false
和中设置一个字段build
,例如:
if (!isInitialized) { isInitialized = true; // TODO: do the getData(...) stuff }


