Database

Apply Data и Generate

Как Apply Data записывает данные в слои: область применения, что происходит с текстом, картинками, свойствами инстансов и директивами, Auto-hide unused. Как Generate instances размножает шаблон по строкам данных и какие ограничения Figma при этом важны.

Два способа записать данные в макет через маппинг:

ДействиеЧто делаетДля чего
Apply DataЗаполняет уже существующие слои в выбранной областиОбновить готовый макет на месте
Generate instancesРазмножает шаблон по строкам данных и заполняет каждую копиюСписки, таблицы и сетки карточек из многих строк

Apply Data

Кнопка Apply Data в шапке плагина находит в выбранной области слои, имена которых совпадают с полями маппингов, и записывает в них значения из данных.

Область применения

Стрелка рядом с кнопкой выбирает область:

Меню области применения Apply Data: Selection, Page, Document.

ОбластьЧто обрабатывается
SelectionВыделенные слои и всё внутри них. По умолчанию
PageТекущая страница
DocumentВсе страницы файла

Для быстрых проверок используйте Selection, для полного обновления Page или Document. Если в выделении нет подходящих слоёв, кнопка неактивна и подсказывает переключить область.

Что попадает в слои

Значение в данныхСлойРезультат
Обычный текстТекстовый слойЗаменяет текст
Адрес изображения, ассет или файл из репозиторияСлой с заливкойСтавит изображение заливкой
@prop:Имя=значениеИнстанс компонентаЗадаёт свойства компонента
@node:…, @hide, @showСлой или его контейнерМеняет видимость, прозрачность, блокировку
@rows:NКонтейнер со строкамиОставляет видимыми первые N строк
true или falseИнстанс компонентаПереключает первое булево свойство инстанса

Слой считается целью, если его имя или текст совпадает с полем Target Layer маппинга с учётом регистра. Если в один слой пишут несколько маппингов, приоритет у полей группы cell/table, затем у остальных групп cell/, затем у прочих.

Auto-hide unused

Переключатель Auto-hide unused в редакторе маппинга скрывает текстовые слои внутри заполненной строки, которые не получили значения. Слои-цели маппинга и уже заполненные слои не скрываются. Работает, когда маппинг привязан к компоненту кнопкой Bind Selected.

Результат применения

После применения уведомление сообщает, в сколько слоёв записаны данные. Пропущенные поля перечислены пунктами с причиной и рекомендацией: нет подходящего набора данных (проверьте Key Expression и имя набора), значение пустое (заполните ячейки или задайте значение по умолчанию), слой не подходит по типу (тексту нужен текстовый слой, изображению и цвету — слой с заливкой). Если не записано ничего, это ошибка с тем же перечнем: нет маппингов, у полей не задан Target Layer, в области нет слоёв с именами полей — уведомление называет искомые имена и предлагает сменить область.

Generate instances

Кнопка Generate instance внизу дерева Database открывает окно Generate instances. Если в источнике нет ни одного маппинга с полями, окно сообщит No .map.json files ready.

Окно Generate instances: выбор маппинга с числом строк, переключатель All / Limit и кнопка с числом создаваемых копий.

  1. Выделите шаблон: инстанс компонента или фрейм с автолейаутом, внутри которого будут строки. Окно напоминает об этом: Requires an auto-layout frame or instance in the current selection.
  2. В окне выберите Mapping: в списке только маппинги с полями, рядом показано число строк данных. Если строк нет, появится подсказка No rows found.
  3. В поле Instances выберите число строк: All или Limit с ограничением.
  4. Нажмите кнопку Generate N instances. Плагин покажет Generating N rows…, затем Generated N rows и выделит созданные строки.

Если в маппинге включена привязка к компоненту, шаблон проверяется: чужой компонент даст ошибку Template does not match bound component.

Плагин очищает прежние сгенерированные строки в контейнере, оставляет шаблон, создаёт копии по числу строк и заполняет их выбранным маппингом. Дополнительно раскрываются шаблоны композиций в тексте вида {{…}}.

Ограничения Figma

  • Лишняя строка во вложенных таблицах. В глубоких структурах вроде таблица → строки → строка-инстанс Figma может оставить одну унаследованную строку, которую плагин не может удалить. Плагин предупредит об этом, строку нужно убрать вручную.
  • Скорость на глубоких инстансах. Запись текста в глубоко вложенные слои инстансов может занимать сотни миллисекунд на ячейку. Для больших наборов данных делайте структуру строки проще.
  • Шрифты. Плагин подгружает шрифты сам, но недоступный шрифт блокирует запись текста в слой. Установите шрифт или замените его в шаблоне.

Советы

  1. Начинайте с области Selection.
  2. Давайте целевым слоям уникальные понятные имена и используйте их в маппинге.
  3. Включайте Bind Selected в маппинге, чтобы Generate проверял шаблон.
  4. Для больших таблиц генерируйте частями или упростите строку.

Связанные страницы