【发布时间】:2021-07-22 01:26:24
【问题描述】:
我为图像轮播创建了状态currentPage。我的三个可能事件是递增/递减和设置页面,这将改变当前查看的轮播页面。我正在使用计时器在 5 秒后增加或重置状态,具体取决于当前查看的页面。
@override
void initState() {
super.initState();
Timer.periodic(const Duration(seconds: 5), (Timer timer) {
if (_currentPage < 2) {
context.read<CarouselBloc>().add(IncrementCurrentPage());
} else {
context.read<CarouselBloc>().add(SetCurrentPage(newPage: 0));
}
_pageController.animateToPage(_currentPage,
duration: const Duration(milliseconds: 300), curve: Curves.easeIn);
});
}
我现在想将_currentPage 变量更改为状态state.currentPage。但我不知道如何从我的void initState 函数中访问状态。我正在用 BlocProvider 包装我的轮播小部件,以从上下文中读取 CarouselBloc 并根据当前页面发出事件。
我希望我能从 initState 函数中获得有关state.currentPage 访问的帮助。
【问题讨论】:
标签: flutter dart bloc flutter-bloc