我想在一个AsyncValue中显示来自Riverpod StatenotifierProvider的TabControl结果。在StatefulWidget中,我会像这样实现TabController:
class Screen extends StatefulWidget {
Screen({Key? key}) : super(key: key);
@override
State<Screen> createState() => _ScreenState();
}
class _ScreenState extends State<Screen> with TickerProviderStateMixin {
late TabController _tabController;
@override
void initState() {
super.initState();
_tabController = TabController(length: 2, vsync: this);
}
如果我将这个小部件转换成一个ConsumerWidget,我就不能再混合在TickerProvider中了,如果我坚持使用StatefulWidget,我就无法访问ref和therby提供程序。
会感谢你的帮助!
发布于 2022-09-25 09:31:01
您可以使用Consumer
类。例如,内部构建方法:
Consumer(
builder: (context, ref, child) {
final value = ref.watch(someProvider);
final another = ref.watch(anotherProvider);
...
},
);
更多信息消费者阶层
发布于 2022-10-10 06:46:46
最后,我决定使用提供程序包而不是TabController。外观是相似的,它产生了一个更干净的代码。
https://stackoverflow.com/questions/73839591
复制相似问题