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。测试是可以通过的。
网友评论