我需要在 graphql 中进行这样的查询,但我不知道该怎么做

问题描述 投票:0回答:1

我正在申请租车以提高自己。 .../车辆地址列出车辆,我在左侧栏有 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,
      },
   });
typescript next.js graphql
1个回答
0
投票

我知道我没有正确解释我的问题。 我是这样解决的,也许你看一下就明白了:

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);

我真的感谢您的兴趣,但如果您能理解问题并解释不同的解决方案,我将不胜感激。

© www.soinside.com 2019 - 2024. All rights reserved.