查询变量未从 apollo 中的 vue 组件向下传递

Query variables not being passed down from vue component in apollo

我有一个接受 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]
}

假设这是一个智能查询,如果您需要访问它,variables 应该是一个(常规,非箭头)函数。