【问题标题】:Reactive variables as query parameters反应变量作为查询参数
【发布时间】:2022-01-18 12:29:46
【问题描述】:

在我的 react 应用程序中实现 apollo-client 后,我​​注意到很多输入数据可能最终会在某个地方的反应变量中结束。如果我想向服务器请求任何东西,通常,该值将来自一个反应变量。因此,如果我可以将反应变量的值链接到我的查询参数,它将大大简化我的代码。理想情况下,我想要的是这样的:

gql`
query FirstName {
  firstName @client
}
query LastName {
  lastName @client
}

query user($firstName: ???, $lastName: ???){
  user(firstName: $firstName, lastName: $lastName){
    id
    firstName
    lastName
    address
    dob
  }
}
`

现在,我知道这些请求将并行解决,所以上述方法永远不会起作用...但是,我该如何使它起作用?我需要为此添加 loadash 吗?是否有针对此的阿波罗客户端解决方案?我将如何使用 loadash 或任何其他库来解决这个问题?

【问题讨论】:

    标签: reactjs graphql apollo-client


    【解决方案1】:

    您正在寻找的是@export 指令,文档中的这个section 解释了如何将本地状态用作变量。

    您的查询将如下所示

    query user($firstName: ???, $lastName: ???){
      firstName @client @export(as: "firstName")
      lastName @client @export(as: "lastName")
      user(firstName: $firstName, lastName: $lastName){
        id
        firstName
        lastName
        address
        dob
      }
    }
    

    【讨论】:

    • 哦,是的,你是对的。我无法让导出工作,但这是因为我的InMemoryCache 定义有问题。修改后,您的示例按预期工作
    猜你喜欢
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 1970-01-01
    • 2011-07-24
    • 2011-11-02
    相关资源
    最近更新 更多