【问题标题】:[GraphQL error]: Message: Variable "$id" of required type "MongoID!" was not provided[GraphQL 错误]:消息:所需类型“MongoID!”的变量“$id”没有提供
【发布时间】:2019-05-29 17:38:56
【问题描述】:

我有以下疑问:

import { gql } from 'apollo-boost';
const GetUserInfo = gql`
query getUserInfo($id: MongoID!){
    userById(_id: $id){
      local{
        username
...
    }
  }
`;

export  {GetUserInfo} ;

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

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”未提供。,位置:[object Object],路径:未定义

console error

我们将不胜感激任何反馈。谢谢!

【问题讨论】:

    标签: reactjs mongodb graphql react-apollo apollo-boost


    【解决方案1】:

    查询中使用的变量是$id;查询需要使用选项中传递的这个变量来执行。

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

    你可以让两个变量同名。

    export default graphql(GetUserInfo, {
      options: (props) => {
        return {
    
              variables: {
                  id: props.ID
          }
        }
      }
    })(Dashboard);
    

    【讨论】:

    • 谢谢!我最初尝试过并认为它不正确,因为我收到了一个错误。你肯定有帮助!
    猜你喜欢
    • 2020-08-24
    • 2021-07-18
    • 2019-05-01
    • 2022-01-03
    • 2021-03-25
    • 2019-06-29
    • 2020-10-18
    • 1970-01-01
    • 2020-11-04
    相关资源
    最近更新 更多