setState() или markNeedsBuild вызывается во время сборки при установке значения Provider
class UserModel extends ChangeNotifier{
User _user;
set setuser(User user)
{
_user = user;
notifyListeners();
}
User get getuser{
return _user;
}
}
class UserLoader extends StatelessWidget
{
final _db= FireStoreService();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('HomeScreen'),
),
body: FutureBuilder(
future: _db.getUserDetails()
builder:(context,futureData){
if(futureData.state == ConnectionState.done)
{
if(futureData.hasData)
{
Provider.of<UserModel>.setuser = futureData.data;
}
}
}
),
);
}
}
Я знаю, что это происходит из-за Provider.of.setuser = futureData.data; поскольку он снова вызывает функцию сборки, пока функция сборки выполняется. У меня есть альтернативный способ, где я могу установить значения в Provider, но не создавать его специально в тех случаях, когда используется строитель.