0

我基本上对所有事情都不熟悉;js、graphql 等。但是我正在使用 WP GraphQL 从我的 Wordpress 安装中获取内容,以填充我在 NextJS 中制作的应用程序。我已经设法让 WP GraphQL 做我需要它做的事情,但现在我需要弄清楚如何让 javascript、nextjs 和 apolloClient 去做我需要它做的事情!

基本上,当我想获得所有具有“钓鱼”和“洗衣”功能的露营地时,我有一个看起来像这样的 WPGraphQL 查询:

query{
 campgrounds(
    where: {
      taxQuery: {
        relation: OR,
        taxArray: [
          {
            terms: ["Fishing"],
            taxonomy: FEATURE,
            operator: IN,
            field: SLUG
          },
          {
            terms: ["Laundry"],
            taxonomy: FEATURE,
            operator: IN,
            field: SLUG
          }
        ]
      }
      }
  ){
    edges{
      cursor
      node{
        id
        title
      }
    }
  }
}

但问题是,我希望能够使用选定的功能列表动态更改 taxArray。我猜这样做的方法是对所选对象进行某种数组映射(来自查询参数,例如 localhost:3000/http://localhost:3000/camps?rcampfeatures=Cable%2CCampground+存储)并将它们添加到...对象的对象?由类似的东西组成 - 这里的伪代码 - :

let featurearray = {};
campfeatures.map(m => 
featurearray.push(

{
terms: ["${m}"],
taxonomy: FEATURE,
operator: IN,
field: SLUG
}
) 
)

但我想我的问题是....如何告诉 GraphQL 插入这些对象?我尝试构建的功能如下所示:

export async function getCampgroundsByFeature(query) {
  const data = await fetchAPI(
    `
    query($string: String){
      campgrounds(
         where: {
           taxQuery: {
             relation: OR,
             taxArray: [
              $string
             ]
           }
           }
       ){
         edges{
           cursor
           node{
             id
             title
           }
         }
       }
     }
    `,
    {
      variables: {
        string: query,
      },
    }
  );
}

但显然这是不正确的。

感谢您提供的任何帮助!!!:)

4

0 回答 0