Ошибки пользовательских действий
- Базовое понимание того, как работают пользовательские действия.
- Проект FlutterFlow с уже созданным пользовательским действием.
Пользовательские действия мощны, но их отладка может быть сложной. Это руководство поможет вам систематически решать распространенные проблемы.
-
Прочитайте сообщение об ошибке
Всегда читайте сообщение об ошибке, выводимое в режиме тестирования, компиляции или локальной сборки. Сообщение часто дает подсказку о возможной проблеме.
-
Общий список по устранению неисправностей
-
Несоответствие имени действия
Убедитесь, что имя в действии соответствует пользовательскому действию в вашем коде.
подсказкаИспользуйте опцию
Add BoilerPlate Codeдля генерации кода с правильным именем действия. -
Импорты и аргументы
-
Проверьте, что все необходимые импорты присутствуют.
-
Убедитесь, что аргументы определены как в настройках действия, так и в вашем коде.

Пример:
-
Аргумент 1: Отсутствует определение в панели настроек
-
Аргумент 2: Правильно импортирован
-
Аргумент 3: Выбрана опция Nullable, но в коде не указано как nullable
Следуйте шагам ниже, чтобы исправить эту проблему:
- Вручную обновите аргументы как в панели настроек, так и в вашем коде.
- Используйте опцию
Add BoilerPlate Code(в веб-версии копируйте только то, что нужно; в десктопной версии это может заменить весь код).

-
-
-
Конфликты имен
-
Избегайте использования одного и того же имени для действия и его аргумента.

-
-
Зарезервированные ключевые слова
- Не используйте зарезервированные ключевые слова Dart/Flutter в качестве имен аргументов. Примеры:
abstract,else,import,show,as,enum,in,static,this. FlutterFlow обычно предупреждает вас, но проверьте дважды!
- Не используйте зарезервированные ключевые слова Dart/Flutter в качестве имен аргументов. Примеры:
-
Несоответствие типа возвращаемого значения
-
Убедитесь, что пользовательское действие возвращает правильный тип данных, как определено в настройках.

Функция должна возвращать тип, указанный в панели настроек.
-
-
Импорты внутренних библиотек
- Если импортируете внутренние библиотеки (например,
../../flutterflow), установите Exclude from compilation вtrue, если это необходимо.
- Если импортируете внутренние библиотеки (например,
-
Зависимости Pubspec
-
Убедитесь, что ваши зависимости объявлены в коде и совместимы с FlutterFlow.

Проверьте:
-
Конфликты версий (проверьте на pub.dev)
-
Несколько версий одной и той же зависимости
-
Конфликты с автоматически импортируемыми зависимостями FlutterFlow


-
-
-
Ошибки в коде:
-
Значения null:
Безопасно обрабатывайте значения null.
int example = passingIntWhichMayBeNullable ?? 0; -
Правильные типы данных:
Явно преобразуйте типы данных.
String str = "5";
int result = int.parse(str); // ✅Используйте
.toString(),.toInt(),.toDouble()по мере необходимости. -
Одиночные элементы против массивов:
Убедитесь, что вы не передаете одиночный элемент там, где ожидается список, или наоборот.
-
-
Исключить из компиляции
Если эта опция включена, код не будет проверяться во время сборки, но может выполняться во время тестирования..

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

-
Типы данных обратных вызовов
Убедитесь, что действия обратного вызова возвращают правильный тип данных.

-
- Отладка с помощью консоли браузера: Используйте консоль отладки браузера для ошибок логики.
- Видео FlutterFlow University: Видео о пользовательских действиях.
- Официальная документация: Custom Actions | FlutterFlow Docs
Если сомневаетесь, сгенерируйте шаблон заново и сравните с вашим кодом. Согласованность между настройками и кодом — ключ к успеху!