我在函数中使用.of(context)
来获取Scoped Object数据并使用它。但是,此函数有时会被不提供所需上下文的上下文调用,因此无法使用,并采用默认值。
我想做的是检查给定的say MediaQuery是否在上下文中起作用,并做其他事情,而不是使用默认值。
您可以使用包装上下文使用
if(mounted){
//your code
}
这将检查上下文是否可以有效使用。https://api.flutter.dev/flutter/widgets/State/mounted.html
我们可以通过使用此方法找到小部件或数据位于上下文的祖先中。
context.findAncestorWidgetOfExactType<T>() != null
例如,检查媒体查询数据是否在传递的上下文中context.findAncestorWidgetOfExactType<MediaQuery>() != null
如果此检查返回true,则我们在传递的上下文中有可用的MediaQueryData。