Нестандартные действия
Нестандартные действия в FlutterFlow отличаются от нестандартных функций тем, что всегда возвращают Future
. Это делает их особенно полезными для выполнения сложных операций, которые могут занять время на завершение, например, запрос к базе данных или вызов функции, возвращающей результаты после задержки. Кроме того, нестандартные действия полезны, когда вы хотите добавить стороннюю зависимость из pub.dev
, что позволяет расширить возможности вашего приложения внешними пакетами.
Future в Flutter представляет собой асинхронную операцию, которая вернет значение или ошибку в будущем. Future<T>
указывает, что в будущем будет предоставлено значение типа T
. Таким образом, если ваше возвращаемое значение - строка, то нестандартное действие вернет Future<String>
, а возвращаемое значение типа String
будет выведено в какой-то момент в будущем.
Основные области применения
- Запросы к базе данных: Выполнение сложных запросов для получения или обновления данных в базе данных.
- Вызовы API: Осуществление асинхронных HTTP-запросов к внешним API и обработка ответов.
- Операции с файлами: Управление операциями чтения или записи файлов, требующими времени на завершение.
- Интеграции сторонних сервисов: Включение внешних пакетов и зависимостей для улучшения функциональности, например, внешний пакет аналитики.
Использование нестандартного действия
После того как ваш код действия завершен, сохранен и скомпилирован, вы можете начать использовать это действие как часть вашего потока действий.
В следующем примере у нас есть нестандартное действие под названием executeSearch
, которое принимает аргумент searchItem
, который представляет строку поиска из поля поиска TextField домашней страницы электронной коммерции.
Использование результата нестандартного действия
В нашем предыдущем примере мы включили Return Value нестандартного действия для возврата List<Product>
, когда ключевое слово поиска является допустимым. С таким изменением код будет изменен с:
Future executeSearch(String searchItem) async {
// Добавьте свой код функции здесь!
}
на:
Future<List<ProductStruct>> executeSearch(String searchItem) async {
// Добавьте свой код функции здесь!
}
Теперь давайте изменим поток действий, чтобы использовать значения результата нашего нестандартного действия.
Чтобы узнать больше о настройках нестандартного действия, таких как Переключатель "Исключить из компиляции", Переключатель "Включить контекст сборки", и другие свойства, вроде Обратных действий, Зависимости Pubspec, пожалуйста, ознакомьтесь с этим подробным руководством.