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

lmvvr0a8  于 2022-11-25  发布在  Flutter
关注(0)|答案(2)|浏览(128)

我遇到过这样的情况:我在函数中使用.of(context)来获取作用域对象数据并使用它。但是,有时调用此函数时使用的上下文并不提供所需的上下文,因此它无法使用并采用默认值。
我试图做的是检查给定的say MediaQuery是否在上下文中起作用,并做一些其他的事情,而不是使用默认值。

mxg2im7a

mxg2im7a1#

我们可以通过使用该方法来查找该widget或数据位于上下文的祖先中。

context.findAncestorWidgetOfExactType<T>() != null

例如,检查介质查询数据是否在传递的上下文context.findAncestorWidgetOfExactType<MediaQuery>() != null
如果此检查返回true,则在传递的上下文中有可用的MediaQueryData。

xj3cbfub

xj3cbfub2#

您可以使用

if(mounted){
//your code
}

这将检查上下文是否可以有效使用。https://api.flutter.dev/flutter/widgets/State/mounted.html

相关问题