"@apollo/react-hooks": "^3.1.3",
"apollo-client": "^2.6.8",
Клиент Apollo возвращает неопределенное значение в приложении реакции, но возвращает данные на игровой площадке gql, я не понимаю, почему он не работает на стороне клиента, но работает на игровой площадке graphql.
Схема
Я определил объединение для пользовательских запросов для обработки ошибок.
type Query {
user(id: ID!): UserReturn!
}
union UserReturn = User | Error
type User {
id: ID!
username: String!
email: String
profileUrl: String
createdAt: Date
ads: [Doc!]!
}
type Error {
message: String
code: ID
}
Средство разрешения запросов
async user(_, { id }, { User }) {
console.log('query - User')
try {
await delay(1000 * 3)
const user = await User.findById(id).populate('userData')
console.log(user)
if (!user) return {
__typename: 'Error',
message: 'User not found.',
code: id
}
const { _id: id, username, email, createdAt, userData: { profileUrl } } = user
console.log(username)
return {
__typename: 'User',
id,
username,
email,
createdAt,
profileUrl
}
} catch (err) {
console.log(err)
return {
__typename: 'Error',
message: 'Something went wrong while getting user.',
code: LogBack(err, `query/user?id=${id}`, __filename)
}
}
}
При запросе на детской площадке gql
на детской площадке graphql, запрос работает.
На стороне клиента
const { data } = useQuery(
gql`query user($id: ID!) {
user(id: $id) {
__typename
... on User {
id
username
email
profileUrl
createdAt
# ads
}
... on Error {
message
code
}
}
}
`,
{
variables: {
id: userId
}
}
);
console.log(data) // undefined
useQuery запускается, но возвращает undefiend.