'positions.isNotEmpty':在使用 PageController.page 构建 PageView 之前无法访问它。轮播颤动

Sha*_*mon 2 dart flutter

我试图在 BottomNavigationBar 中调用一个列表((位于 build(BuildContext context) 小部件之外))。该列表包含一个有状态的小部件(包含轮播幻灯片)。因此,当我重新运行我的项目并滚动页面时,我会不断收到此错误。它说

E/flutter ( 6022): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: 'package:flutter/src/widgets/page_view.dart': Failed assertion: line 180 pos 7: 'positions.isNotEmpty': PageController.page cannot be accessed before a PageView is built with it.
E/flutter ( 6022): #0      _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:42:39)
E/flutter ( 6022): #1      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:38:5)
E/flutter ( 6022): #2      PageController.page (package:flutter/src/widgets/page_view.dart:180:7)
E/flutter ( 6022): #3      CarouselState.initState.<anonymous closure> (package:carousel_pro/src/carousel_pro.dart:110:24)
E/flutter ( 6022): #4      _rootRunUnary (dart:async/zone.dart:1192:38)
E/flutter ( 6022): #5      _CustomZone.runUnary (dart:async/zone.dart:1085:19)
E/flutter ( 6022): #6      _CustomZone.runUnaryGuarded (dart:async/zone.dart:987:7)
E/flutter ( 6022): #7      _CustomZone.bindUnaryCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1024:26)
E/flutter ( 6022): #8      _rootRunUnary (dart:async/zone.dart:1196:13)
E/flutter ( 6022): #9      _CustomZone.runUnary (dart:async/zone.dart:1085:19)
E/flutter ( 6022): #10     _CustomZone.bindUnaryCallback.<anonymous closure> (dart:async/zone.dart:1008:26)
E/flutter ( 6022): #11     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:398:19)
E/flutter ( 6022): #12     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:429:5)
E/flutter ( 6022): #13     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)
Run Code Online (Sandbox Code Playgroud)

代码如下

在此输入图像描述

Xan*_*orm 9

您可以在执行任何操作之前检查是否PageController有页面。这样做:

pageController.hasClients ? pageController.page(2) : pagecontroller.initialPage;

如果您复制并粘贴代码而不是屏幕截图,我会对您有很大帮助。