Я пытаюсь сделать что-то эффективное, подобное этому
`query GetAllUsers($fields: [String]) {
users {
...$fields
}
}`
Где мой клиент (в настоящее время Apollo для реагирования) затем передает массив полей в разделе переменных. Цель состоит в том, чтобы иметь возможность передавать массив для тех полей, которые я хочу вернуть, и интерполировать их в соответствующий запрос graphql. В настоящее время это возвращает синтаксическую ошибку GraphQL в $fields (ожидается {, но видит $). Это вообще возможно? Я подхожу к этому неправильно?
Еще один вариант, который я рассматривал, заключался в вызове функции JavaScript и передаче этого результата в query(), где функция делала что-то вроде следующего:
buildQuery(fields) {
return gql`
query {
users {
${fields}
}
}`
}
Однако это кажется ненужным обходным путем.
К сожалению, мой страх ;). Ну что ж, не самый худший обходной путь. Спасибо!
FWIW, всегда есть решения, такие как эта библиотека.
@xadm, если вы отправите этот комментарий в качестве ответа, я проголосую за него
Вау, да, это значительно упрощает синтаксис. Спасибо!


Резюме комментариев:
Нестандартные требования требуют обходных путей;)
Вы можете использовать фрагменты (для предопределенных наборов полей), но они, вероятно, не будут свободно детализированы (на уровне поля).
Переменные определенно не для определения запроса (но для переменных, используемых в запросе).
Предложение Дэниела: gql-построитель запросов
Похоже, что сообщество graphQL велико и полно людей, работающих над всеми возможными вариантами использования ... достаточно искать решения или спрашивать на SO;)
нестандартные требования требуют обходных путей;) вы можете использовать фрагменты (для предопределенных наборов полей), но они не будут свободно детализированы ... переменные определенно не для определения запроса (но для переменных, используемых в запросе)