Провайдер использует 2 переменные для одной и той же модели, одну слушают, другую нет - PullRequest
0 голосов
/ 27 апреля 2020

Как вы можете прочитать в комментариях к коду, мне нужно получить информацию от модели в разных местах моей строки или listTile (внутри ListView). Но большую часть времени без прослушивания / необходимости перестройки пользовательского интерфейса. В одном месте в каком-то подвиджете, той строке, мне нужно обновление пользовательского интерфейса.

Что менее ресурсоемко? Если решение2 менее ресурсоемко, нормально ли это делать таким образом? (модель предоставляется в другом файле как ChangeNotifierProvider)

Решение 1:

@override
Widget build(BuildContext context) {

// use it in many places in my row or listTile
final myModel = Provider.of<MyModel>(context); 

return Row(children: <Widget>[...

Решение 2:

@override
Widget build(BuildContext context) {

// will use it in many places
final myModelNotListening = Provider.of<MyModel>(context, listen: false); 

// (same model as above!! but) will use it just at on or two places in my row or listTile
final myModelListening = Provider.of<MyModel>(context); 

return Row(children: <Widget>[...

Большое спасибо!

...