#javascript #reactjs #graphql #frontend #apollo
Вопрос:
У меня есть такой запрос :
const GET_ANALYTICS = gql`
query($courseId: String) {
getStudentsAnalytics(courseId: $courseId) {
totalStudents,
studentsNotStartedCoursesYetPercentage,
studentsFinishedCoursesPercentage,
studentsInProgressCoursesPercentage,
studentsCompletedQuizzesPercentage,
studentsFailedQuizzesPercentage,
studentsInProgressQuizzesPercentage
}
}
`
и в коде я пытаюсь передать переменную из компонента prop:
const AnalyticsStatistic = (courseId: string) => {
const { loading, error, data } = useQuery(GET_ANALYTICS){
variables: {courseId},
}
для красного подчеркнутого параметра CourseID я получаю следующие ошибки: «CourseID» объявлен, но его значение никогда не считывается.ts(6133)
Дубликат идентификатора ‘CourseID’.ts(2300)
и для внутренней переменной: {CourseID} я получаю эти ошибки:Дубликат идентификатора «CourseID».ts(2300) Элемент привязки «CourseID» неявно имеет тип «любой». ts(7031)
Комментарии:
1. добавьте свой код запроса GET_ANALYTICS. и попробуйте
courseId
только, а не объект2. Я опубликовал ответ, приняв запрос
GET_ANALYTICS
, если это решит вашу проблему, пожалуйста, отметьте его как ответ3. сделайте
courseId
строку to, потому что запрос ожидает, что это будет только строка4. если это сработало, пожалуйста, поднимите голос и отметьте его как ответ 🙂
5. Для этого мне нужна репутация, но я проверил, все ли решено
Ответ №1:
ваш GET_ANALYTICS
запрос выглядит так, поэтому вам не нужно передавать идентификатор курса внутри объекта, проверьте код ниже
const GET_ANALYTICS = gql`
query($courseId: String) {
getStudentsAnalytics(courseId: $courseId) {
....
}
}
`
соответствующий крючок useQuery следует использовать следующим образом и вместо любого аргумента CourseID использовать строку, потому что запрос ожидает строку
const AnalyticsStatistic = (courseId: string) => {
//? FIX
const { loading, error, data } = useQuery(GET_ANALYTICS,{
variables: {courseId},
})
если вы получаете неиспользуемую переменную, добавьте ее внутрь tsconfig.json
{
"compilerOptions": {
"noUnusedLocals": false,
"noUnusedParameters": false
}
}
Комментарии:
1. пока нет, я также добавил скриншоты для своей проблемы, не могли бы вы, пожалуйста, проверить их ?
2. Я обновил свой ответ, попробуйте установить эти флаги внутри tsconfig.json
3. установлено ли значение false? если это правда, измените ее на ложь
4. Я добавил: не могли бы вы , пожалуйста, проверить это ?
5. благослови тебя господь, приятель спасибо за внимание