Вам следует избегать использования заполнителей для значений внутри запроса и использовать вместо них переменные. Таким образом, ваш запрос теперь будет выглядеть примерно так:
const MY_QUERY = gql`
query MyQuery($filter: String, $sort: String, $limit: Int, $offset: Int) {
data (
filter: $filter
sort: $sort
limit: $limit
offset: $offset
) {
name
}
}
`
Примечание: типы, которые вы определяете для своих переменных, должны соответствовать вашей схеме для аргументов фильтра, сортировки, ограничения и смещения.
Теперь вы можете передавать переменные при рендеринге вашего Query
компонента:
<Query query={MY_QUERY} variables={{ limit: 10, offset: 20 }}>
{({ loading, error, data }) => {
// ...
}}
</Query>
Или, используя HOC:
graphql(MY_QUERY, { options: (props) => ({ variables: { limit: 10, offset: 20 } }) }
Или используя клиент напрямую:
client.query ({запрос: MY_QUERY, переменные: {предел: 10, смещение: 20}})
Если какая-либо из переменных не определена, они будут проигнорированы, и вам не придется больше ничего делать.