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