Flutter:是否有一种方法可以识别上下文是否具有所需的提供程序,或者上下文是否具有MediaQuery



我在函数中使用.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。

最新更新