Переменные запроса не передаются из компонента vue в apollo

У меня есть простой запрос, который принимает параметр идентификатора, но он не работает. Он говорит: «Ошибка типа: невозможно прочитать свойство 'taskId', равное 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]
}

person DalaiLlama    schedule 02.11.2019    source источник


Ответы (1)


Предполагая, что это умный запрос, variables должен быть функцией (обычной, без стрелки), если вам нужен доступ к ней.

person Daniel Rearden    schedule 02.11.2019