Ошибки в собственных действиях
- Общее понимание того, как устроены собственные действия.
- Проект с уже созданным собственным действием.
Собственные действия дают полную свободу — и ровно поэтому ломаются чаще остального. Ниже чек-лист, по которому стоит пройтись.
Прочитайте текст ошибки. Сообщение из Test Mode, компиляции или локальной сборки почти всегда указывает на причину.
Имя действия
Имя в настройках должно совпадать с именем функции в коде.

Кнопка Add Boilerplate Code генерирует заготовку с уже правильным именем.
Импорты и аргументы
- Все нужные импорты на месте.
- Аргументы описаны и в настройках действия, и в коде.

Типичные расхождения:
- аргумент есть в коде, но не описан в панели настроек;
- аргумент помечен как nullable в настройках, но в коде тип не допускает null.
Что делать: привести настройки и код в соответствие вручную или воспользоваться Add Boilerplate Code. В веб-версии копируйте из заготовки только нужное — в десктопной она может заменить весь код.
Совпадающие имена
Не называйте аргумент так же, как само действие.

Зарезервированные слова
Аргумент нельзя называть ключевым словом Dart: abstract, else, import, show, as, enum, in, static, this. FlutterFlow обычно предупреждает, но не всегда.
Тип возвращаемого значения
Функция должна возвращать ровно тот тип, что указан в настройках.

Импорты внутренних библиотек
Если импортируете что-то вроде ../../flutterflow, при необходимости включите Exclude from compilation.
Зависимости pubspec
Зависимости должны быть объявлены и совместимы с FlutterFlow.

На что смотреть:
- конфликты версий — сверяйтесь с pub.dev;
- несколько версий одного пакета;
- конфликт с пакетами, которые FlutterFlow подключает сам.


Ошибки в коде
Работа с null:
int example = passingIntWhichMayBeNullable ?? 0;
Явное приведение типов:
String str = "5";
int result = int.parse(str);
Пригодятся и .toString(), .toInt(), .toDouble().
И проверьте, не передаёте ли вы одиночное значение туда, где ждут список, — или наоборот.
Exclude from Compilation
С включённой опцией код не проверяется при сборке, но выполняется при тестировании. Ошибка в нём всплывёт неожиданно.

Дублирование типов данных
Не описывайте в коде типы и структуры, которые уже есть в панели схемы данных.

Типы в колбэках
Действие-колбэк должно возвращать тот тип, который от него ждут.

- Собственные действия
- Видео о собственных действиях
- Логические ошибки удобно ловить в консоли браузера.
Если непонятно, в чём дело, сгенерируйте заготовку заново и сравните её со своим кодом. Настройки и код должны описывать одно и то же.