【发布时间】:2021-10-22 13:56:36
【问题描述】:
我注意到我的项目中有一个新的 lint 问题。
长话短说:
我需要在我的自定义类中使用 BuildContext
flutter lint 工具在与 aysnc 方法一起使用时不满意。
例子:
MyCustomClass{
final buildContext context;
const MyCustomClass({required this.context});
myAsyncMethod() async {
await someFuture();
# if (!mounted) return; << has no effect even if i pass state to constructor
Navigator.of(context).pop(); # << example
}
}
【问题讨论】:
-
出于导航的目的将上下文传递给这样的对象似乎并不明智。如果在将上下文传递给 MyCustomClass 后导航堆栈发生更改,并且您尝试使用旧上下文再次导航,则会出现错误。
-
我同意,那么应该如何处理这种情况?
-
使用一些状态管理,比如 BloC,当状态改变时你可以触发导航。只要您不存储上下文,而是将上下文用于导航目的而不存储实例。
标签: flutter dart flutter-dependencies flutter-state flutter-build