Fre*_*nga 2 flutter flutter-dependencies flutter-layout
我正在尝试访问上下文,以便可以读取我的提供程序,但由于此生命周期挂钩位于小部件树之外。它无法访问。有没有办法访问上下文?
我做了一些研究,最后与 flutter bloc 社区的 narcodico 进行了讨论,所以学分归他所有。
因此,WidgetsBindingObserver在状态类上混合,context即使在覆盖中也可用,didChangeAppLifecycleState因为它们是状态类的一部分。
另外,请考虑移至状态小部件上方的 BlocProvider。
例子
class HomePageProvider extends StatelessWidget {
@override
Widget build(BuildContext context) {
return BlocProvider(
create: (context) => getIt<InAppPurchasesBloc>(),
child: HomePage(),
);
}
}
class HomePage extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _HomePageState();
}
}
class _HomePageState extends State<HomePage> with WidgetsBindingObserver {
...
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
if (state == AppLifecycleState.resumed) {
context
.read<InAppPurchasesBloc>()
.add(const InAppPurchasesEvent.getPurchaserInfo());
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2187 次 |
| 最近记录: |