я использовал Apollo в ReactNative Project
Я хочу получить некоторые продукты с сервера с компонентом запроса в ApolloClient, моя схема запроса похожа на эту
products(isExisting:true) {
id
name
}
этот запрос дает мне все доступные продукты, а также у меня есть этот запрос с другим аргументом
products(minPrice:$price)
id
name
}
теперь я хочу создать программу для условного выбора между двумя аргументами: в плоскости [A] используйте (isExisting) arg и в плоскости [B] используйте (minPrice)
Мое первое и глупое решение - создать 2 разных компонента запроса, это как-то иначе, например, установить переменную для таких аргументов
products($choose:$value)
также я знаю о директиве в graphql https://graphql.github.io/learn/queries/#directives
но я думаю, это только для поля
также мое второе решение для решения этой проблемы, поместив переменную javascript в '', например
render() {
const arg = 'minPrice';
return(
<Query
variables = {{ }}
query = {gql`
query {
products(${arg}:100) {
id
name }
Я проверил это, работает у меня хорошо, но я хочу знать, что это хороший и лучший способ





Я думаю, что последнее решение - хорошая идея для этого подхода, также вы должны знать директиву, которая просто работает для поданных
products(isExist:true) {
name @include if (false/true)
}
это означает, что если условия возвращают True, вы получаете поле (имя), а если возвращаете False, поле (имя) не включается в ваш запрос
также вы можете эту директиву
products(isExist:true) {
name @skip if (false/true)
}
@include(if: Boolean) Only include this field in the result if the argument is true.
@skip(if: Boolean) Skip this field if the argument is true.
спасибо @parisa, но я думаю, что это грязный способ, должен существовать лучший способ решить эту проблему, я думаю, но спасибо, что дали мне хорошую информацию о директиве