Я выполняю свои запросы точно так же, как в документации (https://aws -amplify.github.io / docs / js / api # ampify-graphql-client ), но я продолжаю получать следующую ошибку:
TypeError: Must provide Source. Received: undefined
Запрос выглядит следующим образом:
export const listUsers = `query ListUsers(
$filter: ModelUserFilterInput
$limit: Int
$nextToken: String
) {
listUsers(filter: $filter, limit: $limit, nextToken: $nextToken) {
items {
id
firstName
prefix
lastName
phone
cigarettesDay
enableNotifications
age
coach {
id
name
}
stopDate {
nextToken
}
notifications {
nextToken
}
}
nextToken
}
}
`;
Использование API.graphql
Я вызываю запрос следующим образом:
async componentDidMount() {
try {
const result = await API.graphql(graphqlOperation(listUsers));
console.log(result);
} catch (err) {
console.log(err);
}
}
По этой проблеме https://github.com/graphql/graphql-js/issues/1038 Мне нужно добавить source
, но я не могу найти ни одного примера или документации о том, как это сделать.Любая помощь очень ценится!
Редактировать
Это сработало, когда я сделал это следующим образом:
async componentDidMount() {
try {
const result = await API.graphql(graphqlOperation(queries.listUsers));
console.log(result);
} catch (err) {
console.log(err);
}
}
И импортировал как import * as queries from '../../../graphql/queries';
Почему?
Решение
Это потому, что я импортировал запрос как
import listUsers from '../../../graphql/queries';
вместо
import { listUsers } from '../../../graphql/queries';