引用自 Riverpod
文档:
A StatefulWidget that can use Hook
It's usage is very similar to StatefulWidget, but use hooks inside State.build.
The difference is that it can use Hook, which allows HookWidget to store mutable data without implementing a State.
除此之外,我找不到任何示例代码或其他教程或除引用之外的任何描述。
在这个简单的 HookWidget
中,我如何使用 StatefulHookWidget
实现它?
class MyHomePage extends HookWidget {
@override
Widget build(BuildContext context) {
final store = useMemoized(() => MyStore());
return Container();
}
}
最佳答案
StatefulHookWidget 适用于需要使用常规 StatefulWidget 的任何可重写函数的情况 - 例如 didChangeDependency、initState 或 dispose。
一般来说,除非您有非常好的或利基的理由来使用 StatefulHookWidget,否则更喜欢 HookWidget。
本质上,如果我们复制您的示例,Class1 和 Class2 就最终产品而言是等效的。唯一的区别是到达那里所需的措辞。
class Class1 extends HookWidget {
const Class1({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
final store = useMemoized(() => MyStore());
return Container();
}
}
class Class2 extends StatefulHookWidget {
const Class2({Key? key}) : super(key: key);
@override
_Class2State createState() => _Class2State();
}
class _Class2State extends State<Class2> {
@override
Widget build(BuildContext context) {
final store = useMemoized(() => MyStore());
return Container();
}
}
关于Flutter 什么是 StatefulHookWidget 以及我们如何使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69144391/