Собственные действия

Custom Action отличается от собственной функции тем, что всегда возвращает Future. Отсюда область применения: всё, что выполняется не мгновенно, — запрос к базе, вызов API, работа с файлом. Здесь же подключаются сторонние пакеты с pub.dev.

совет
Что такое Future

Future во Flutter — это обещание вернуть значение или ошибку когда-нибудь позже. Future<T> означает, что рано или поздно придёт значение типа T. Если действие возвращает String, его сигнатура будет Future<String>.

Где применяются

  • Запросы к базе — сложная выборка или обновление данных.
  • Вызовы API — асинхронные HTTP-запросы и разбор ответов.
  • Работа с файлами — чтение и запись.
  • Сторонние пакеты — например, подключение внешней аналитики.

Использование

Написанное, сохранённое и скомпилированное действие становится доступно в потоке действий наравне со встроенными.

В примере действие executeSearch принимает аргумент searchItem — строку из поля поиска на главной странице магазина.

Результат действия

В примере у действия включён Return Value: при корректном запросе оно возвращает List<Product>. Сигнатура при этом меняется с

Future executeSearch(String searchItem) async {
  // Add your function code here!
}

на

Future<List<ProductStruct>> executeSearch(String searchItem) async {
// Add your function code here!
}

Теперь результат можно использовать в потоке действий:

перевод официальной документации FlutterFlow

обновлено

ESC