Как предоставить данные поставщику с использованием вложенных моделей данных [Список> Элемент> Подсписок> Подэлемент] - PullRequest
0 голосов
/ 29 апреля 2020

Я начал использовать пакет провайдера для управления состоянием и использовал его в основном c. Поскольку приложение становится более сложным, я хочу расширить использование.

Теперь я имею в виду структуру этой модели: List<Client> с List<Product> (и глубже с List<Component>).

У меня есть MultiProvider, использующий ChangeNotifierProvider для клиентов, означает, что List<Client> управляется провайдером, пока что все хорошо.

Теперь я хочу напрямую использовать List<Product> в провайдере, или позже List<Component> внутри List<Product>. Я не хочу go пройти через List<Client> ... до Компонента.

Здесь у меня есть изображение карта структуры для визуализации.

Вот некоторый упрощенный код:

    // Just an example idea of..

Class Product with ChangeNotifier {
  final String title;  
}

Class Client with ChangeNotifier {
  final String name;
  final String List<Product>;
}


Class Clients with ChangeNotifier {
  final List<Client> _items;

}


void main()  { 
    // start the app
  runApp(MyApp());
}
class MyApp extends StatelessWidget {

@override
  Widget build(BuildContext context) {
    return MultiProvider(
      providers: [
        ChangeNotifierProvider(create: (ctx) => Clients()),  

        // How to provide a List<Product> that actually in the model 
        // belongs to a Client in the List<Client>

      ],
      child: MaterialApp(
        body: ...
      )
      );   
  }
}

Таким образом, главный вопрос заключается в том, как предоставить List<Product>, который на самом деле в модели принадлежит клиенту в List<Client>?

...