Как передать параметры одному провайдеру с несколькими потребителями? - PullRequest
0 голосов
/ 29 апреля 2020

В моем приложении флаттера у меня есть несколько виджетов, потребляющих один провайдер:

@override
Widget build(BuildContext context) {
   return ChangeNotifierProvider<MyProvider>(         // <--- ChangeNotifierProvider
   create: (BuildContext context) {
      final MyProvider provider =  MyProvider(repo: repo2);
      provider.ProductParameterHolder.shopId = widget.shopId;
      provider.loadProductList(provider.ProductParameterHolder);
      return provider;
   },
   ...  
   child: MaterialApp(
       children: <Widget>[
            ...
            child1: Consumer<MyProvider>(        // <--- Consumer
            ...
            child2: Consumer<MyProvider>(        // <--- Consumer
            ...
            child3: Consumer<MyProvider>(        // <--- Consumer
            ...
            ...
       ]
    )

Как изменить ChangeNotifierProvider, чтобы он распознавал, какой дочерний элемент использует MyProvider?

Например: place provider.ProductParameterHolder.child = ???; in Блок ChangeNotifierProvider.

...