gpt4 book ai didi

flutter - 如何使用 flutter HookWidget 访问 didChangeAppLifecycleState 生命周期 Hook 中的上下文?

转载 作者:行者123 更新时间:2023-12-05 09:36:17 29 4
gpt4 key购买 nike

我正在尝试访问上下文以便我可以读取我的提供程序,但是因为这个生命周期 Hook 在小部件树之外。它不可访问。有没有办法访问上下文?

最佳答案

我进行了一些研究,最后与来自 flutter bloc 社区的 narcodico 进行了讨论,所以功劳归于他。

因此,在状态类上混合 WidgetsBindingObserver,即使在像 didChangeAppLifecycleState 这样的覆盖中,context 也是可用的,因为它们是状态的一部分类。

此外,请考虑将 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());
}
}
...
}

关于flutter - 如何使用 flutter HookWidget 访问 didChangeAppLifecycleState 生命周期 Hook 中的上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65283227/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com