将参数传递给 apollo 中的查询失败

Posted

技术标签:

【中文标题】将参数传递给 apollo 中的查询失败【英文标题】:Failed passing parameters to a query in apollo 【发布时间】:2019-04-15 03:04:52 【问题描述】:

我在这里有一个有效的查询

 const getCicadaByUserIdQuery = gql`
 query($id:String)
  user(id:$id)
    id
    userName
    password
      cicadas 
        name
        id
        image
        long
        lat
        userid
      
  
`

在 localhost 中传递用户的有效 id 时,它将按预期返回数据。 我试图做的是在登录用户上传递特定用户的参数

export default compose(
 graphql(getCicadasQuery,name:"getCicadasQuery"),
 graphql(addCicadaMutation,name:"addCicadaMutation"),
 graphql(getCicadaByUserIdQuery,
    name:"getCicadaByUserIdQuery",
    options: () => ( variables:  id: getLoginUser().id  )

 ),
 graphql(getUsersQuery,name:"getUsersQuery"),
)(CicadaScoutScreen)

getLoginUser() 是一个简单的函数,返回当前登录用户的数据。

我通过以下方式调用此查询:

this.props.getCicadaByUserIdQuery

请帮助我似乎无法让它工作

【问题讨论】:

【参考方案1】:

如果它适用于 localhost 但不适用于您正在运行的服务器,则可能与 getLoginUser() 函数的工作方式有关。

您可以 console.log 该函数的输出进行调试,如下所示: graphql(getCicadaByUserIdQuery, name:"getCicadaByUserIdQuery", options: () => console.log(getLoginUser()); return variables: id: getLoginUser().id ; ),

如果它在 localhost 中工作,那么 Apollo 客户端本身可能不是问题。

【讨论】:

非常感谢您的评论,我刚刚使用了一个突变,它可以工作

以上是关于将参数传递给 apollo 中的查询失败的主要内容,如果未能解决你的问题,请参考以下文章

Apollo Client Angular:如何将从查询中获得的数据作为参数传递给graphql中的另一个查询?

将参数传递给 react-apollo-hooks useQuery

Apollo Server:将参数传递给嵌套解析器

如何将 Apollo 数据和 React Router 4 url​​ 参数传递给我的组件

如何将参数传递给SQL(Excel)中的查询

如何将参数传递给graphql查询?