Как получить доступ к данным из метода в компьютерном - PullRequest
0 голосов
/ 24 августа 2018

Методы:

methods: {
    fetchData () {
      axios.get(globalConfig.ORDERS_URL, {
        params: {
          limit: this.limit,
          offset: this.offset
        }
      })
        .then((resp) => {
          this.req = resp.data
          console.log(resp)
        })
        .catch((err) => {
          console.log(err)
        })
    }
}

Вычислено:

  computed: {
    filteredRequests () {
      return this.req.results.filter(item => {
        return item.created.toLowerCase().includes(this.name)
      })
    }
  }

Данные:

  data () {
    return {
      req: {},
    }
  }

Анализ данных с конечной точки API, но я не могу использовать req объект в вычисляемом методе вообще, он выдает ошибку.

Содержимое req объект:

enter image description here

Я такжеиспользовали:

  created () {
    this.fetchData()
  },

  watch: {
    '$route': 'fetchData'
  }

Итак, когда я использую req объект в шаблоне напрямую - он работает, но я не могу вызвать его в вычисляемом методе для его фильтрации.

1 Ответ

0 голосов
/ 24 августа 2018

Вы вызываете this.req.results в computed, в то время как начальные данные req: {} и асинхронный метод fetchData() не разрешается мгновенно, поэтому он вызывает ошибку. Сделайте что-то вроде:

computed: {
  filteredRequests () {
    if (this.req.results) {
      return this.req.results.filter(item => {
        return item.created.toLowerCase().includes(this.name)
      })
    } else {
      return 'No results'
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...