Flutter更新版本导致TabController的ScrollableState报错

channel从master改到stable,版本升级到2.0.4,之前版本好像是1.9.7左右。然后运行项目报错。界面上用了一个Tab控件,Tab的TabController报错 ,报错内容为Null check operator used on a null value,报错代码指向了:

_tabController = TabController(
      length: groupListList.length,
      vsync: ScrollableState(),
    );

ScrollableState内部报错,指向378行

ScrollPosition get position => _position!;

因为_position为空。找了半天也没有找到为什么没人给他赋值。推测原因是不同版本Flutter写法变更;TabController的vsync字段是需要传入一个TickerProvider类型,原来的ScrollableState虽然mixin了TickerProvider,但是可能在构建过程中_position没有赋值导致空指针。所以尝试vsync赋值为this,让本身的State类mixin TickerProvider。测试是可以通过的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容