查询变量未从Apollo中的vue组件传递下来

时间:2019-11-02 12:17:15

标签: graphql apollo-client vue-apollo

我有一个简单的查询,它带有一个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]
}

1 个答案:

答案 0 :(得分:0)

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