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

В этом разделе мы разберём различные типы переменных, доступные в FlutterFlow, включая:
- Локальные переменные: Переменные, ограниченные конкретным виджетом или страницей, используемые для обработки данных в локализованном контексте. Например, переменные состояния страницы или переменные состояния компонента ограничены сущностью, в которой они созданы.
- Глобальные переменные: Переменные, которые можно получать и изменять во всём приложении, что позволяет обеспечивать последовательное управление данными на разных страницах. Например, переменные состояния приложения доступны из любой точки приложения.
Область видимости переменной определяется местом её создания. Например, если она создана на уровне приложения, то доступна во всём приложении. Однако переменная, созданная на уровне страницы, доступна только на этой странице.
Создание переменных
При создании переменных в FlutterFlow важно учитывать их имя, тип данных, возможность быть null и начальные значения. Конкретный процесс создания переменных зависит от того, работаете ли вы с переменными состояния приложения, состояния страницы или состояния компонента, и вы можете найти подробные инструкции по ссылкам ниже.
Именование переменной
Начните с присвоения переменной значимого и описательного имени, отражающего её назначение. Это имя будет использоваться во всём приложении для ссылки на переменную, поэтому важно сохранить его ясным и соответствующим вашим соглашениям об именовании.
Мы рекомендуем соглашение об именовании lowerCamelCase для переменных. Подробнее о рекомендуемых соглашениях об именовании, используемых в проектах FlutterFlow и Flutter.
Присвоение типа данных переменной
Далее выберите подходящий тип данных для вашей переменной. FlutterFlow предлагает несколько типов данных, таких как Text, Integer, Boolean или String. Обратитесь к руководству Data Types guide, чтобы узнать больше о доступных типах данных.
Выбор правильного типа данных критически важен, поскольку он определяет, как переменная может использоваться и какой тип данных она может хранить.
Свойство списка
Включите переключатель Is List, чтобы указать, что это поле должно быть типа list.
Если выбранный тип данных — String и включён переключатель Is List, FlutterFlow создаст список строковых переменных. Этот список может содержать несколько строковых значений, например список названий городов.
Nullable и начальное значение
При создании переменных в FlutterFlow вы можете сделать их nullable или non-nullable. Эта настройка важна, поскольку определяет, может ли переменная содержать значение null (т. е. отсутствие значения). Кроме того, вы можете определить начальное значение для переменной, что гарантирует, что она начнёт с конкретного значения сразу после создания.

-
Nullable: Эта опция определяет, может ли переменная содержать значение null, то есть существовать без данных. Если опция Nullable включена, переменная может начинаться как null и получать значение только при необходимости. Если опция отключена, переменная всегда должна иметь значение, что означает, что вам нужно предоставить начальное значение при её создании.
-
Initial Value: Если переменная non-nullable (т. е. не может быть null), вы обязаны предоставить начальное значение, чтобы гарантировать, что она всегда содержит данные. Для nullable-переменных установка начального значения необязательна, что позволяет им оставаться пустыми до присвоения значения.
Значение null представляет отсутствие значения. В FlutterFlow разрешен ие переменной быть null может быть полезным в сценариях, таких как:
- Ввод пользователя: Перед тем как пользователь введёт данные, переменная может начинаться как null и получать значение только после ввода пользователем.
- Условная логика: В случаях, когда определённые данные могут не всегда быть применимы (например, необязательная настройка пользователя), значение null позволяет более гибко обрабатывать отсутствие данных.
- Состояния загрузки: При получении данных из API переменные могут быть null до загрузки данных, что позволяет легко различать состояния "загрузка" и "загружено".
Как создать переменные?
Для пошаговых руководств по созданию переменных состояния приложения, состояния страницы и состояния компонента обратитесь к следующим ссылкам:
Установка переменной
Меню Set from Variable или Set Variable в FlutterFlow — это мощная функция, которая позволяет динамически управлять содержимым или поведением ваших виджетов с использованием данных, хранящихся в переменных. При выборе переменной из этого меню вы указываете FlutterFlow использовать значение этой переменной для заполнения или изменения свойств виджета, таких как текст, видимость или стилизация.
Это меню предоставляет разнообразные источники переменных, включая данные, специфичные для страницы или компонента, глобальные свойства, применяемые ко всему приложению, константы и многое другое. Выбирая подходящую переменную, вы можете сделать ваше приложение более интерактивным и отзывчивым на ввод пользователя, изменения данных или другие условия.

Манипуляция переменными
При установке переменных через меню Set Variable вы можете манипулировать или преобразовывать данные перед их применением к виджету или другой переменной. Эта манипуляция позволяет адаптировать данные под конкретные нужды или контексты, повышая гибкость и функциональность вашего приложения.
Например, вы можете:
- Concatenate or Combine Strings: Объединить несколько текстовых значений в одну строку. Чтобы узнать, как манипулировать строками перед установкой переменных, см. руководство Utility Functions.
- Filter or Sort Lists: Организовать или уточнить данные в списках, чтобы отображать только релевантное или в определённом порядке.
- Convert DateTime to UNIX: Преобразовать объект DateTime в метку времени UNIX для совместимости или расчётов.
- Apply Conditional Logic: Использовать операторы If/Then/Else для установки разных значений на основе конкретных условий.
Эти манипуляции позволяют создавать более динамичные и отзывчивые пользовательские интерфейсы, обеспечивая, что данные, отображаемые или используемые в вашем приложении, всегда находятся в наиболее подходящей форме.
Опции списка
При работе со списком вам может потребоваться извлечь конкретные данные на основе определённых критериев. Опции списка предоставляют набор функций для эффективного извлечения данных из этих списков. Вот что они включают:
Map List Items
Опция Map List Items позволяет под готовить список конкретных полей из типов данных, таких как Documents, Custom Data Types и JSON. Например, если у вас есть список документов Firebase, содержащих поля вроде name, age и position, вы можете сгенерировать список, состоящий только из имён. Эта опция позволяет создавать адаптированные списки из сложных структур данных.
Вот пример подготовки списка только имён кошек из документов Firebase (которые содержат другие поля, такие как name, age и breed) и их отображения в выпадающем списке.
Filter List Items
Опция Filter List Items позволяет создать список элементов на основе конкретных критериев, генерируя подсписок совпадающих элементов. Например, вы можете создать список пользователей старше определённого возраста из большой базы пользователей или собрать список продуктов в определённом ценовом диапазоне из обширного инвентаря.
First Few Items
Опция First Few Items извлекает начальные элементы списка до указанного количества.

Sort List Items
Если ваш список содержит "native data types" (например, числа или строки), мы можем автоматически отсортировать эти элементы. Native data types имеют "естественный порядок". Например, числа можно сортировать численно (1, 2, 3, ...), а строки — алфавитно ("apple", "banana", "cherry", ...). Для такого списка установите Sort Key на элемент в списке.
Вот пример отображения случайных имён в алфавитном порядке:
Чтобы отсортировать список в обратном порядке, сначала отсортируйте его с помощью опции сортировки, затем примените опцию reverse для listView, чтобы получить убывающий порядок.
Для списков с Custom Data Types вам нужно указать, какое поле использовать для сортировки, задав его в Sort Key, и это поле должно быть стандартным типом данных, который имеет ясный естественный способ упорядочивания.
Вот как вы можете отобразить список элементов (пользовательского типа данных 'Product') в порядке, от сортированном по цене.
Unique List Items
Эта опция помогает создать список с уникальными элементами, например, извлечь разные категории продуктов или уникальные имена клиентов из большого набора данных.
Вот пример отображения списка уникальных пород кошек:
Чтобы получить список уникальных элементов из списка пользовательского типа данных, сначала сопоставьте список элементов с полем, из которого вы хотите извлечь уникальные элементы. Например, если у вас есть список пользовательского типа данных 'Products', сопоставьте этот список со списком, содержащим все имена проду ктов. Затем выведите уникальные элементы списка из этого сопоставленного списка.
Number of Items
Выберите опцию Number of Items, если вы хотите получить количество всех элементов в списке.
Item at Index
Опция Item at Index позволяет получить доступ к конкретному элементу по его позиции в списке. Например, вы можете извлечь третий элемент из списка имён клиентов или выбрать пятый продукт в каталоге. Это особенно полезно в сценариях, где по рядок элементов имеет значение, например, при получении последней записи в логе, упорядоченном по времени, или просто когда нужно точно указать элемент без фильтрации всего списка.
Is Set and Not Empty
Чтобы определить, присутствует ли какое-либо значение в списке или список не пуст, выберите опцию Is Set And Not Empty. Например, это можно использовать для проверки, вернул ли поисковый запрос какие-либо результаты, или для подтверждения, что процесс сбора данных успешно захватил записи.
Обновление значений переменных
В FlutterFlow вы можете обновлять значения переменных через actions. Например, при нажатии кнопки или изменении поля формы вы можете запустить действие, которое обновит переменную новым значением.
Обратитесь к следующим руководствам для подробных инструкций по обновлению и использованию этих переменных: