我遇到过这样的情况:我在函数中使用.of(context)来获取作用域对象数据并使用它。但是,有时调用此函数时使用的上下文并不提供所需的上下文,因此它无法使用并采用默认值。我试图做的是检查给定的say MediaQuery是否在上下文中起作用,并做一些其他的事情,而不是使用默认值。
.of(context)
mxg2im7a1#
我们可以通过使用该方法来查找该widget或数据位于上下文的祖先中。
context.findAncestorWidgetOfExactType<T>() != null
例如,检查介质查询数据是否在传递的上下文context.findAncestorWidgetOfExactType<MediaQuery>() != null中如果此检查返回true,则在传递的上下文中有可用的MediaQueryData。
context.findAncestorWidgetOfExactType<MediaQuery>() != null
xj3cbfub2#
您可以使用
if(mounted){ //your code }
这将检查上下文是否可以有效使用。https://api.flutter.dev/flutter/widgets/State/mounted.html
2条答案
按热度按时间mxg2im7a1#
我们可以通过使用该方法来查找该widget或数据位于上下文的祖先中。
例如,检查介质查询数据是否在传递的上下文
context.findAncestorWidgetOfExactType<MediaQuery>() != null
中如果此检查返回true,则在传递的上下文中有可用的MediaQueryData。
xj3cbfub2#
您可以使用
这将检查上下文是否可以有效使用。https://api.flutter.dev/flutter/widgets/State/mounted.html