Как найти объект по идентификатору из параметров vue-router, а затем передать его свойства шаблону в vue - PullRequest
1 голос
/ 26 октября 2019

Я получаю данные из состояния vuex в моем компоненте ContactDetails, затем сохраняю их в массиве контактов, и после этого я нахожусь в процессе вычислений, пытаясь найти и вернуть объект на основе реквизитов id, переданных из параметров маршрутизатора.

Это код

export default {
  data() {
    return {
      contacts: [],
    };
  }, 
  props: ["id"],

  created() {
    this.contacts = this.$store.getters.getContacts;
  },
  computed:{
    contact () {
      return this.contacts.find(contact => {
        contact.id === this.id
      })
    }
  }

, но каким-то образом я продолжаю получать этот объект неопределенным: enter image description here

1 Ответ

2 голосов
/ 26 октября 2019

С вашим кодом есть 2 проблемы:

  1. Несоответствие типов. Contact.id имеет тип номера, но url prop id является строкой.
  2. При использовании find вы должны либо использовать функцию стрелки, которая имеет неявный возврат (рекомендуется), либо использовать фигурные скобки, но использовать returnключевое слово.
 contact() {
      return this.contacts.find(contact => contact.id === parseInt(this.id));
    }
...