如何处理代码?



_LocationNotEnabledState#340f0(tickers: tracking 2 tickers)被一个活动Ticker处理。

_LocationNotEnabledState通过其TickerProviderStateMixin创建了一个Ticker,但是在mixin上调用dispose()时,该Ticker仍然是活动的。在调用super.dispose()之前必须处置所有Tickers。

AnimationController使用的Tickers应该通过调用AnimationController本身的dispose()来处理。否则,代码会泄漏。

可以重写页面的dispose方法。然后你可以像这样处置你的动画控制器:

@override
dispose() {
animationController.dispose();
super.dispose();
}

我建议您使用管理小部件生命周期的flutter_hooks包,这样您就不必再担心处理方法了。该包附带了一个可重用钩子列表,包括TickerProviderAnimationController

相关内容

  • 没有找到相关文章