Flutter提示Don‘t use ‘BuildContext‘s across async gaps.的解决办法---flutter里state的mounted属性
今天编写代码,遇到了Don't use 'BuildContext's across async gaps.的蓝色提示,虽然不是警告也不是报错,但是强迫症还是受不了想解决这个bug
原因
我在async函数进行了显示toast的wiget,flutter不希望我们这样做,因为这里我们函数是异步的,执行显示widget时候的buildcontext可能变化了,也就是我们现在界面widget树可能变化了
解决
在你的widget构建前增加
if (!mounted) return;
在Flutter的 State
对象中,mounted
是一个布尔值属性,用于指示与这个 State
对象相关联的 Widget
是否仍然挂载到Widget树上。当一个Widget被从Widget树中移除时,它的 State
对象的 mounted
属性将会变为 false