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

Ошибки пользовательских действий

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

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

  • Прочитайте сообщение об ошибке

    Всегда читайте сообщение об ошибке, выводимое в режиме тестирования, компиляции или локальной сборки. Сообщение часто дает подсказку о возможной проблеме.

  • Общий список по устранению неисправностей

    • Несоответствие имени действия

      Убедитесь, что имя в действии соответствует пользовательскому действию в вашем коде.

      подсказка

      Используйте опцию Add BoilerPlate Code для генерации кода с правильным именем действия.

    • Импорты и аргументы

      • Проверьте, что все необходимые импорты присутствуют.

      • Убедитесь, что аргументы определены как в настройках действия, так и в вашем коде.

        Пример:

        • Аргумент 1: Отсутствует определение в панели настроек

        • Аргумент 2: Правильно импортирован

        • Аргумент 3: Выбрана опция Nullable, но в коде не указано как nullable

          Следуйте шагам ниже, чтобы исправить эту проблему:

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

    • Конфликты имен

      • Избегайте использования одного и того же имени для действия и его аргумента.

    • Зарезервированные ключевые слова

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

      • Убедитесь, что пользовательское действие возвращает правильный тип данных, как определено в настройках.

        Функция должна возвращать тип, указанный в панели настроек.

    • Импорты внутренних библиотек

      • Если импортируете внутренние библиотеки (например, ../../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() по мере необходимости.

      • Одиночные элементы против массивов:

        Убедитесь, что вы не передаете одиночный элемент там, где ожидается список, или наоборот.

    • Исключить из компиляции

      Если эта опция включена, код не будет проверяться во время сборки, но может выполняться во время тестирования..

    • Дублирующиеся типы данных/структуры

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

    • Типы данных обратных вызовов

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

Дополнительные ресурсы
подсказка

Если сомневаетесь, сгенерируйте шаблон заново и сравните с вашим кодом. Согласованность между настройками и кодом — ключ к успеху!