Flutter开发 - Null check operator used on a null value(flutter大量奇怪异常)

在Flutter开发中,遇到大量'Null check operator used on a null value'异常,主要由已销毁对象调用notifyListeners引起。解决方法是在重写notifyListeners时检查state的mounted状态,确保为true才执行。同样,对于setState,也可通过判断mounted避免类似问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近通过sentry平台,看到了很多奇怪的异常,有些异常甚至达到了百万级别,仔细去看才发现问题所在,报错是这样的:

_CastError
Null check operator used on a null value
change_notifier.dart in ChangeNotifier.notifyListeners at line 218

看到之后根据对应提示找到了代码,发现是notifyListeners报的,也就是说,在notifyListeners的时候,被通知的‘对象’已经被销毁了,这种情况出现的场景比较有限,博主这里出现的场景是倒计时。

那怎么解决这种奇怪的异常呢?最好的办法就是重写notifyListeners方法,然后在重写的notifyListeners中判断所要通知的widget的state的mouted状态是否是true,如果为false,则不执行,具体的操作是这样的:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodingFire

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值