我有一个简单的查询,它带有一个ID参数,但是不起作用。它说“ TypeError:无法读取未定义的属性'taskId'”。因此,我认为由于某种原因它无法识别“ this”关键字。
请看看:
来自前端组件的阿波罗查询:
getCommentsByTask: {
query: GET_COMMENTS_BY_TASK,
variables: {
taskId: this.taskId
},
result({ data }) {
this.getComments = data;
console.log("data", data);
}
}
在前端定义查询:
query GET_COMMENTS_BY_TASK($taskId: ID!) {
getCommentsByTask(taskId: $taskId) {
id
parentId
ownerId
text
}
}
服务器中的解析器:
async getCommentsByTask (_, {taskId}, context) {
const userId = getUserId(context)
const user = await User.findById(userId)
if (!user) return
const comments = await Comment.findById(taskId)
return comments
}
模式:
type Query {
getCommentsByTask(taskId: ID!): [Comment]
}
答案 0 :(得分:0)
假设这是一个智能查询,variables
应该是(常规,非箭头)函数,如果您需要访问它的话。