【发布时间】:2020-02-28 10:43:50
【问题描述】:
我有一个简单的查询,它接受一个 ID 参数,但它不起作用。它说 "TypeError: Cannot read property 'taskId' of undefined" 。所以我认为它由于某种原因无法识别“this”关键字。
请看一下:
来自前端组件的 Apollo 查询:
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]
}
【问题讨论】:
标签: graphql apollo-client vue-apollo