Блок флаттера с вложенной структурой данных

#flutter #nested #bloc #hierarchical #state-management

#флаттер #вложенный #блок #иерархический #управление состоянием

Вопрос:

У меня есть вложенная структура, что-то вроде этого:

 List<Areas>
|-- List<Topics>
|   |-- List<Exercises>
  

Это рабочий процесс моего приложения:

  1. Приложение открыто
  2. Извлекать API и отображать список Areas
  3. Пользователь выбирает Area и переходит к следующему экрану
  4. Получение API и отображение списка разделов
  5. Пользователь выбирает Topic и переходит к следующему экрану
  6. Извлеките API и отобразите список упражнений
  7. Пользователю необходимо выполнить все из них

Я начал использовать BloC, но я не уверен, должен ли я использовать блок для каждого типа данных (например, один блок для Areas , другой для Topics и еще один для Exercises ) или обрабатывать всю структуру только в одном блоке.

Я вижу проблему State , связанную с тем, что a содержит всю структуру и нуждается в обновлении каждый раз, когда вложенный список извлекается из API . Может быть, это вызовет проблемы с памятью?

С другой стороны, наличие одного блока для каждого типа данных усложнит обмен данными между ними.

Я также открыт для переключения на другую state management технику, если это имеет больше смысла.

Любая помощь будет оценена.

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

Ответ №1:

Лучше всего иметь по одному блоку на экран. Поэтому в вашем случае было бы лучше иметь 3 блока. Вы также должны свести к минимуму связь между блоками, поскольку у каждого должны быть свои обязанности.