Flutter Bloc 在 initState 函数中访问状态

Flutter Bloc access state inside of initState function

我已经为图像轮播创建了状态 currentPage。我的三个可能事件是 increment/decrement 和设置页面,这将更改轮播的当前查看页面。我正在使用计时器在 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 的帮助。

试试这个:

var page = context.read<CarouselBloc>().state.currentPage