我正在使用 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
...
}
`;
Run Code Online (Sandbox Code Playgroud)
并在组件中:
const CarList = (props) => {
const { data, loading, error } = useQuery(GET_CARS, {
variables: {
brandId: "exampleBrandId"
}
})
...
}
Run Code Online (Sandbox Code Playgroud)
问题是,有些参数是可选的:也许用户不关心品牌、型号、价格……那么所有汽车都应该出现:如果没有选择品牌,则应该出现所有品牌的汽车;如果未选择价格,则应出现所有价格的汽车...
我怎样才能做到这一点?就像是:
query FilterCars($brandId: ID){
cars(where: {
model : { brand: { id: $brandId || …Run Code Online (Sandbox Code Playgroud)