这里涉及到Flutter的一个构建算法
有兴趣的可以自己去看看源码 我就不写了,直接写出解决的方案
-
1.在构建的第一帧初始化
/// 注:getUserName()是业务函数 void initState() { super.initState(); WidgetsBinding.instance.addPostFrameCallback((callback){ Provider.of<UserModel>(context).getUserName(); }); }
-
2.引入零时变量判断
UserModel _user; /// 注:getUserName()是业务函数 @override void didChangeDependencies() { final _user = Provider.of<UserModel>(context); if (_user != this._user) { this._user = _user; _user.getUserName(); } }
谢谢大家 别忘记一键三联哟~~~~