У меня такой запрос:
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!" не был предоставлен., Местоположение: [объект Object], Путь: undefined
Мы будем благодарны за любые отзывы. Спасибо!





В запросе используется переменная $id; запрос должен быть выполнен с этой переменной, переданной в параметрах.
В настоящее время передается значение для _id, и это другая переменная, которая никогда не используется в запросе.
У вас может быть одно и то же имя для обеих переменных.
export default graphql(GetUserInfo, {
options: (props) => {
return {
variables: {
id: props.ID
}
}
}
})(Dashboard);
Спасибо! Я пробовал это изначально и подумал, что это неправильно, потому что я получил ошибку. Вы определенно помогли!