Flutter中StatefulHookWidget是什么?如何将HookWidget示例改写为其实现?
StatefulHookWidget 等效实现代码
// 继承StatefulHookWidget而非HookWidget class MyHomePage extends StatefulHookWidget { @override HookState<MyHomePage> createState() => _MyHomePageState(); } class _MyHomePageState extends HookState<MyHomePage> { @override Widget build(BuildContext context) { // hook用法和HookWidget中完全一致 final store = useMemoized(() => MyStore()); return Container(); } }
核心注意点
- StatefulHookWidget对应的状态类必须继承
HookState<T>,不能使用普通的State<T>,否则无法调用各类hook API - 所有hook的调用逻辑依然放在build方法内,使用规则和HookWidget场景完全一致
- 可以正常重写
initState、dispose、didUpdateWidget等State生命周期方法,用法和普通StatefulWidget完全相同 - 适合需要同时使用hook能力,又需要依赖StatefulWidget生命周期做额外处理的场景
内容的提问来源于stack exchange,提问作者DolDurma
相关产品推荐
相关产品推荐

