我有一个搜索查询,它接受一个变量并基于该变量进行搜索。
在我的主页上,我想使用3个不同的变量将此查询发送3次。
但是,如果我像上面那样做,我将无法获得结果。
这是查询:
const TOP_TEACHER_QUERY= gql`
query topTeachers {
searchBasicTeachersByRating(rating: 3) {
id
name
title
}
searchBasicTeachersByRating(rating: 4) {
id
name
title
isNew
}
}
}
这是功能
allQueries() {
return this.apollo
.watchQuery<any>({
query: TOP_TEACHER_QUERY,
})
.valueChanges;
}
注意 :
我尝试添加接口并定义所需的响应数据,但没有任何效果
interface Response {
searchBasicTeachersByRatingMedium: Student[];
searchBasicTeachersByRatingHigh: Student[];
}
allQueries() {
return this.apollo
.watchQuery<any>({
query: TOP_TEACHER_QUERY,
})
.valueChanges;
}
数据仅包含查询后命名的列表(searchBasicTeachersByRating)
我在graphql游乐场尝试了以下查询,它返回2个数组,但是在Angular中我只能得到一个
作为解决方案,我在后端创建了新查询,或发送了2个不同的查询。
但是我想要这种方法的解决方案。
提前致谢
当选择集多次包含同一字段时,您需要为重复的字段使用别名:
searchBasicTeachersByRatingMedium: searchBasicTeachersByRating(rating: 3) {
id
name
title
}
searchBasicTeachersByRatingHigh: searchBasicTeachersByRating(rating: 4) {
id
name
title
isNew
}
请求完成后,每个字段将作为data
提供的别名下的属性提供。在上面的示例中,我们对两个字段都使用了别名,但是您可以在其中一个字段中省略别名。