Javascript GraphQL Apollo:Apollo客户端查询中未提供变量错误,尽管我想我已设置了该变量

Javascript GraphQL Apollo:Apollo客户端查询中未提供变量错误,尽管我想我已设置了该变量,javascript,graphql,apollo-client,Javascript,Graphql,Apollo Client,这个基本的客户端查询有什么问题 import gql from 'graphql-tag' export default (context, apolloClient, userId) => ( apolloClient.query({ query: gql` query RootQueryType($userId: ID!) { verifyUser( id: $userId ) { id,

这个基本的客户端查询有什么问题

import gql from 'graphql-tag'

export default (context, apolloClient, userId) => (
  apolloClient.query({
    query: gql`
      query RootQueryType($userId: ID!) {
        verifyUser(
          id: $userId
        ) {
          id,
          token
        }
      },
    `,
    options: {
      variables: { userId: userId }
    }
  }).then(({ data }) => {
    return { loggedInUser: data }
  }).catch((error) => {
    console.log(error)
    return { loggedInUser: {} }
  })
)
我确实得到了错误:GraphQL错误:所需类型ID的变量$userId!没有提供。。但是我用这些数据设置了选项和变量。
我不知道我做错了什么。

我认为您在查询定义中有问题:

gql` 查询RootQueryType$userId:ID!{ 验证用户 userId:$userId//这里您需要将参数设置为userId { 身份证件 代币 }
}` 第一个userID应该是id而不是userID,它还应该在Apollo服务器中定义为id以匹配您的查询

更改: 选项:{ 变量:{userId:userId}
}也许我遗漏了什么,但我几乎看不出你的和OPS有什么区别问题和答案的主要区别是:问题:verifyUserid:$userId答案:verifyUserid:$userId这应该是这样的,因为在查询的定义中需要userId参数。这就是graphQL错误试图告诉我们的