如何在 graphql 过滤器上传递变量?
How do I pass a variable on the graphql filter?
在下面的部分中,ref
和 queryName
工作正常(只要您传递完整的 graphql 查询,而不仅仅是它的名称。无论如何,columnName
似乎不接受变量作为输入。检查 post 请求时,它只是说“columnName”而不是 id 或我在函数上指定 columnName 时碰巧用作搜索条件的任何内容打电话。
export async function fetchItems(ref, queryName, columnName) {
const queryNameData = await API.graphql(graphqlOperation(queryName, {
filter: {
columnName: {
contains: ref,
},
}
}))
const { items } = queryNameData.data
return (items)
}
这是 graphql post 到 dynamodb 的变量部分的示例:
{
variables: {
filter: {
columnName: {
contains: "062"
}
}
}
}
queryName 和 ref 没问题,但在本例中“columnName”应该是“id”,因为这是我为函数调用设置的 columName 等于。
使用传递的参数准备 filter
对象,例如:
export async function fetchItems(ref, queryName, columnName) {
let filter = {};
filter[columnName] = { contains: ref };
const queryNameData = await API.graphql(graphqlOperation(queryName, { filter }))
在下面的部分中,ref
和 queryName
工作正常(只要您传递完整的 graphql 查询,而不仅仅是它的名称。无论如何,columnName
似乎不接受变量作为输入。检查 post 请求时,它只是说“columnName”而不是 id 或我在函数上指定 columnName 时碰巧用作搜索条件的任何内容打电话。
export async function fetchItems(ref, queryName, columnName) {
const queryNameData = await API.graphql(graphqlOperation(queryName, {
filter: {
columnName: {
contains: ref,
},
}
}))
const { items } = queryNameData.data
return (items)
}
这是 graphql post 到 dynamodb 的变量部分的示例:
{
variables: {
filter: {
columnName: {
contains: "062"
}
}
}
}
queryName 和 ref 没问题,但在本例中“columnName”应该是“id”,因为这是我为函数调用设置的 columName 等于。
使用传递的参数准备 filter
对象,例如:
export async function fetchItems(ref, queryName, columnName) {
let filter = {};
filter[columnName] = { contains: ref };
const queryNameData = await API.graphql(graphqlOperation(queryName, { filter }))