[Ошибка GraphQL]: Сообщение: переменная "$ id" необходимого типа "MongoID!" не был предоставлен - PullRequest
0 голосов
/ 03 января 2019

У меня следующий запрос:

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.Я также уверен, что считываются реквизиты родительского компонента.

Приведенный выше код приводит к следующей ошибке:

[Ошибка GraphQL]: Сообщение: переменная "$ id" необходимого типа"Mongoid!"не был предоставлен., Местоположение: [объект], путь: не определено

ошибка консоли

Любая обратная связь будет принята с благодарностью.Спасибо!

1 Ответ

0 голосов
/ 03 января 2019

В запросе используется переменная $id; запрос должен быть выполнен с этой переменной, переданной в опциях.

В настоящее время передается значение для _id, и это другая переменная, которая никогда не используется в запросе.

Вы можете иметь обе переменные с одинаковым именем.

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

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