這里涉及到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(); } }
謝謝大家 別忘記一鍵三聯喲~~~~