Блоки действий

Блок действий (Action Block) — набор действий, решающий одну задачу и вызываемый из разных мест приложения. Если один и тот же набор шагов повторяется в проекте, ему самое место в блоке: сложная логика разбивается на понятные части, и правится потом в одном месте.

У блоков есть область видимости — от неё зависит, откуда блок доступен и к каким переменным обращается:

Уровень блокаГде доступенК каким переменным обращается
Уровень приложенияВо всём приложении. Создать такой блок можно с любой страницы или из компонента, и оттуда же его можно открыть и изменить.Только переменные своей области — например, переменные App State.
Уровень страницыТолько на той странице, где создан.Переменные состояния страницы и переменные уровнем выше — App State.
Уровень компонентаТолько в том компоненте, где создан.Переменные состояния компонента, а также переменные страницы и App State.
заметка
Что нельзя положить в блок

Часть действий в блоках не поддерживается и по умолчанию скрыта в редакторе: например, действия из категории Firebase Authentication, Start Periodic Action, Upload Data и некоторые другие.

Как устроен блок

Поток внутри блока собирается так же, как обычная последовательность действий. Отличий два: у блока выбирается область видимости и описываются входные и выходные значения.

Выбор области видимости

Блок уровня приложения создаётся из свойств действий любого виджета и доступен везде. Блоки уровня страницы и компонента остаются там, где созданы.

Выбор делается в выпадающем списке при создании блока — исходя из того, где он вам понадобится.

action-blocks.png

Параметры блока

Блоку доступны переменные его области видимости — скажем, блоку уровня страницы видны переменные состояния этой страницы. Но иногда логике нужны данные извне: их передают параметрами, которые описываются при создании блока в редакторе действий.

Разберём на примере списка избранного в магазине. Локальный список хранится в переменной App State localWishlist, а блок addToWishlist принимает параметр productId и добавляет товар в этот список.

Возвращаемое значение

Блок может возвращать результат. Например, на странице корзины блок уровня компонента getTotalCost считает итоговую стоимость всех товаров и возвращает число. Тип возвращаемого значения задаётся в редакторе действий.

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

обновлено

⌕ ESC