
Управление состоянием Flutter с помощью Riverpod
Немного сложный пример речного стручка из реального мира во Flutter
Как я и обещал на прошлой неделе. Я покажу вам свой собственный окончательный путь решения для управления состоянием! АКА
Riverpod + StateNotifier + Hooks + Freezed
Риверпод классный! но хороших примеров не так много. только основы и все. На этот раз я попытался создать пример, который одновременно понятен и сложен. На этом примере я хочу научить вас, когда и как использовать Riverpod. Я максимально упростил процесс. Надеюсь, вам понравится!
Осторожность!!
Если вы не знаете, как использовать Riverpod, сначала ознакомьтесь с этой статьей, а затем вернитесь сюда!
Мотивация

Что мы будем делать в этом примере?
Мы просто получим некоторые данные из API, отсортируем и отфильтруем их в пользовательском интерфейсе.
В принципе, мы будем;
- Создавайте простых и сложных провайдеров и комбинируйте их
- Используйте объект
AsyncValueи покажите асинхронное значение в пользовательском интерфейсе, используя методwhen - Кроме того, создайте
freezedобъектов для решения неизменяемых объектов.
Давайте начнем!
Создать службу API
Небольшое примечание
Мне не удалось найти подходящую модель API для использования функции фильтрации, потому что я сам добавил роли. Прости меня за это
Создайте неизменяемую модель, используя freezed и json_serializable
Если вы хотите узнать больше о FreezedПожалуйста, ознакомьтесь с этой статьей.
Получить значение от Сервиса
Вы можете подумать, что такое AsyncValue. Это просто класс объединения, который помогает нам обрабатывать состояние нашего значения. Он поставляется с пакетом провайдера из коробки.
Я подробно объясню в своих следующих статьях, но пока это все.
Создание провайдеров сортировки и фильтрации
Получите полученный список от провайдера, отфильтруйте и отсортируйте их с помощью другого провайдера.
Показать все в пользовательском интерфейсе
А вот и мы!
Если вы думаете об этом примере как о приложении электронной коммерции, пример будет гораздо более осмысленным.
Бонус
Вот моя следующая статья о Riverpod
Последние слова
Я не riverpod гуру. Просто учусь и делюсь своим опытом, поэтому, если вы знаете, как лучше использовать riverpod, сообщите нам об этом!
Пример проекта GitHub
Вот ваш исходный код.
Спасибо за чтение!
Это была длинная статья, и вы пришли сюда полностью! Ты замечательный! Пожалуйста, не забывайте хлопать (также, возможно, вы не знаете, что хлопки могут достигать 50 раз, просто щелкайте по ходу дела)