我正在申请租车以提高自己。 .../车辆地址列出车辆,我在左侧栏有 5 个选择输入。如果选择了一个值,我希望它有一个过滤器,如果没有选择它,我希望它没有过滤器。我无法构建如何发送查询和数据。你能帮我吗?
subscription Vehicles($daily_price: String) {
vehicles(where: { _or: { daily_price: $daily_price, fuel: {}, gear: {}, model_id: {}, brand_id: {} } }) {
id
fuel
}
const { data, loading, error } = useSubscription(from && to ? VEHICLES_BY_DATE_RANGE : VEH_SUBS, {
variables: {
...filters,
},
});
我知道我没有正确解释我的问题。 我是这样解决的,也许你看一下就明白了:
const createQuery = (filters: any) => {
const filterConditions = [];
if (filters?.brand_id) filterConditions.push(`brand_id : {_eq: "${filters.brand_id}"}`);
if (filters?.fuel) filterConditions.push(`fuel: {_eq: "${filters.fuel}"}`);
let q;
if (filterConditions.length > 0) {
q = `
{
_or: {${filterConditions.join(", ")}}
}
`;
} else q = {};
return gql`
subscription getVehicles {
vehicles(where: ${q}) {
model {
name
}
}
}
`;
};
const q = createQuery(filters);
const { data: d, loading: l, error: e } = useSubscription(q);
我真的感谢您的兴趣,但如果您能理解问题并解释不同的解决方案,我将不胜感激。