Transformers
Трансформаторы предназначены для преобразования данных и повторного использования вашего многострочного кода JavaScript. Данные из запросов или компонентов могут не соответствовать вашим потребностям в бизнес-сценариях. Кроме того, вы можете использовать один и тот же блок кода несколько раз в приложении. В таких случаях трансформатор - это то, что вам нужно.
По сравнению со встроенным кодом в{{ }}
, трансформаторы поддерживает многострочные блоки кода. И в отличие от JavaScript query, transformer предназначен для выполнения операций только для чтения, что означает, что вы не можете запустить запрос или обновить временное состояние внутри трансформатора.
Быстрый старт
Нажмите +Создать > Трансформатор в редакторе запросов, чтобы создать трансформатор.
Затем напишите свой JS-код в transformer. Вы можете нажать Предварительный просмотр, чтобы получить возвращаемое значение и получить к нему доступ с помощью transformerName.value
в вашем приложении.
В следующем примере,transformer1
использует данные звездного рейтинга в rating1
, чтобы подсчитать балл.
{{ }}
запрещен внутри запроса transformer или JS. {{ }}
используется только для создания однострочного JS-выражения, в то время как трансформатор или JS-запрос предназначены для нескольких строк JS-кода.
Варианты использования
Преобразование временной метки
Используйте moment().format()
метод преобразования форматов временных меток. В следующем примере значение временной метки преобразуется в start_time
возвращенный query1
к YYYY-MM-DD
формату.
Сортировка данных запроса
используйте _.orderBy()
метод, предоставляемый Lodash для сортировки данных. Следующий пример возвращает query1.data
отсортированный по amount
столбец в порядке возрастания.
Объединить два запроса
В приведенном ниже примере кода показано, как объединить результаты запроса getUsers
и getOrders
по идентификатору пользователя.
Операции, доступные только для чтения
Внутри преобразователя разрешены только операции, доступные только для чтения. Это означает, что вы не можете устанавливать значения компонентов или временные состояния, а также запускать запросы. Для этих операций используйте запросы JavaScript.
Например, вы не можете вызвать метод setText()
текстового компонента в трансформаторе.
Вместо этого вызываем метод setText()
в запросе JavaScript не сообщается об ошибке.
В другом примере трансформатор sort1
направлена на сортировку данных о getUsers
для first_name
, но sort()
метод может изменить исходные данные, поэтому возникает ошибка.
В этом случае используйте следующий метод _.orderBy()
вместо этого он был предоставлен Lodash.
Last updated