我基本上对所有事情都不熟悉;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,
},
}
);
}
但显然这是不正确的。
感谢您提供的任何帮助!!!:)