【问题标题】:How do I pass a variable on the graphql filter?如何在 graphql 过滤器上传递变量?
【发布时间】:2021-09-23 21:12:29
【问题描述】:

在下面的部分中,refqueryName 工作正常(只要您传递完整的 graphql 查询,而不仅仅是它的名称。无论如何,columnName 似乎不接受变量作为输入。当检查发布请求时,它只显示“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发布到dynamodb的变量部分的示例:

{
    variables: {
        filter: {
            columnName: {
                contains: "062"
            }
        }
    }
}

queryName 和 ref 没问题,但在本例中,“columnName”应该是“id”,因为这是我为函数调用设置的 columName。

【问题讨论】:

  • 不是 graphql 问题 - 只是纯 js,使用名为 prop 的变量创建/准备对象,稍后在 API 调用中使用它
  • @xadm 目前尚不清楚如何在此应用程序中处理 prop 变量。示例:Link'变量道具示例'

标签: reactjs amazon-web-services graphql dynamodb-queries


【解决方案1】:

使用传递的参数准备filter 对象,例如:

export async function fetchItems(ref, queryName, columnName) {
     let filter = {};
     filter[columnName] = { contains: ref };
     const queryNameData = await API.graphql(graphqlOperation(queryName, { filter }))

【讨论】:

  • 哦,我现在明白了。非常感谢。成功了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-05
  • 2019-11-19
  • 2020-12-26
  • 1970-01-01
  • 2021-06-09
  • 2021-03-18
  • 1970-01-01
相关资源
最近更新 更多