【问题标题】:Flutter Bloc access state inside of initState functioninitState 函数内部的 Flutter Bloc 访问状态
【发布时间】: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


    【解决方案1】:

    试试这个:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-19
      • 2020-05-06
      • 2019-03-24
      • 2021-01-16
      • 2021-12-09
      • 1970-01-01
      • 2020-07-09
      • 2021-03-04
      相关资源
      最近更新 更多