首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >[GraphQL错误]:消息:所需类型为"MongoID!“的变量"$id”未提供

[GraphQL错误]:消息:所需类型为"MongoID!“的变量"$id”未提供
EN

Stack Overflow用户
提问于 2019-01-03 14:03:59
回答 1查看 3K关注 0票数 1

我有以下疑问:

代码语言:javascript
代码运行次数:0
运行
复制
import { gql } from 'apollo-boost';
const GetUserInfo = gql`
query getUserInfo($id: MongoID!){
    userById(_id: $id){
      local{
        username
...
    }
  }
`;

export  {GetUserInfo} ;

然后,我将查询绑定到我的"React.Component“

代码语言:javascript
代码运行次数:0
运行
复制
import React from "react";
...
import { GetUserInfo } from "../../queries/queries";
import { graphql } from 'react-apollo';



class Dashboard extends React.Component {
  constructor(props) {
    super(props);
...

Dashboard.propTypes = {};



export default graphql(GetUserInfo, {
  options: (props) => {
    return {

          variables: {
              _id: props.ID
      }
    }
  }
})(Dashboard);

我确信props.ID等同于一个MongoDB ID,我也确信来自父组件的属性正在被读取。

上面的代码导致以下错误:

GraphQL错误:消息:所需类型为"MongoID!“的变量"$id”未提供。,位置:对象对象,路径:未定义

console error

任何反馈都将非常感谢。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-03 14:12:04

查询中使用的变量是$id;执行查询时需要在选项中传递此变量。

当前传递的是_id的值,这是一个从未在查询中使用过的不同变量。

您可以让两个变量具有相同的名称。

代码语言:javascript
代码运行次数:0
运行
复制
export default graphql(GetUserInfo, {
  options: (props) => {
    return {

          variables: {
              id: props.ID
      }
    }
  }
})(Dashboard);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54017084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档