Создал запрос Apollo, аналогичный этому примеру , но продолжаю получать эту ошибку: Variable "$id" of required type "ID!" was not provided.
Моя схема:
type RootQuery {
person(_id: ID!): Person!
}
и преобразователь:
person: async args => {
const person = await Person.findById(args._id);
return {
_id: person._id,
name: person.name,
location: person.location,
address: person.address,
};
}
, который обычно работает в localhost:3000/graphql
Я передаю идентификатор и возвращаю данные.
Тем не менее, он не работает на стороне клиента, ошибка говорит, что идентификатор не 't предоставлено.
запрос
const GET_PERSON_QUERY = gql`
query person($id: ID!) {
person(_id: $id) {
_id
name
location
address
}
}
`;
Компонент запроса
export const GetPerson = ({ _id }) => {
console.log("id: ", _id);
return (
<Query query={GET_PERSON_QUERY} variables={{ _id }}>
{({ loading, error, data }) => {
if (error) return <div>Error loading posts</div>;
if (loading) return <div>Loading...</div>
);
return (
<ul>
<li>{data.person.name}</li>
</ul>
);
}}
</Query>
);
};
Например, передача этой переменной const _id = "abcabc"
в компонент <GetPerson _id={_id}
/> приводит к ошибке.