Перейти к основному содержимому

Нестандартные действия

Нестандартные действия в FlutterFlow отличаются от нестандартных функций тем, что всегда возвращают Future. Это делает их особенно полезными для выполнения сложных операций, которые могут занять время на завершение, например, запрос к базе данных или вызов функции, возвращающей результаты после задержки. Кроме того, нестандартные действия полезны, когда вы хотите добавить стороннюю зависимость из pub.dev, что позволяет расширить возможности вашего приложения внешними пакетами.

Что такое Future?

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, пожалуйста, ознакомьтесь с этим подробным руководством.