Я создаю приложение с React, Apollo и Prsima, которое позволяет пользователям фильтровать автомобили по модели, марке, цене ... Я знаю (например), как фильтровать автомобили по марке:
const GET_CARS = gql`
query FilterCars($brandId: ID){
cars(where: {
model : { brand: { id: $brandId } }
}) {
id
model {
name
brand {
name
}
horses
}
year
km
price
...
}
`;
А в компоненте:
const CarList = (props) => {
const { data, loading, error } = useQuery(GET_CARS, {
variables: {
brandId: "exampleBrandId"
}
})
...
}
Проблема в том, что некоторые параметры являются необязательными: может быть, пользователю нет дела до бренда, или модели, или цены ... Так что тогда все машины должны Появиться: если не выбрана ни одна марка, должны появиться автомобили всех марок; Если цена не выбрана, должны появиться автомобили всех цен ...
Как я могу это сделать? Что-то вроде:
query FilterCars($brandId: ID){
cars(where: {
model : { brand: { id: $brandId || all_brand_ids } }
}) {
...
}
}
Я исследовал и нашел возможное решение , но пользовательский ввод, на который ссылается пост, не генерируется в моей призме.