Свойство установлено неопределенным при перезагрузке / обновлении страницы - PullRequest
1 голос
/ 29 января 2020

У меня есть medications объект следующим образом:

medications: [
 {
    'name': 'abc',
    'id': naks23kn,
    'resident': //this is resident id, resident is another object
     .........
 },
 {.......},.....
 ]

Я хотел добавить другое поле residentName в этот список объектов или есть какой-либо способ, чтобы я мог отобразить residentName в v-data-table?:

 medications: [
 {
    'name': 'abc',
    'id': naks23kn,
    'resident': //this is resident id, resident is another object
    'residentName': 'ad' //set this new field
     .........
 },
 {.......},.....
 ]

Я использую `v-data-table> as:

<v-data-table
  :headers="headers"
  :items="medications"
  :items-per-page="20"
  :search="search"
  class="elevation-23"
>

Теперь я хочу добавить поле residentName на основе поля резидента. Для этого я сделал следующее:

export default {
data() {
    return {
       medications: [],
    }
},
 computed: {
  ...mapGetters([
    'allMedications', //this is used to get all medication from medication store
    'getResidentsById',
  ]),
},
created() {
   this.get_resident_list(),
   this.get_registered_medication_list();
},
methods: {
  ...mapActions([
    'get_registered_medication_list', //this is used to call API and set state for medication
    'get_resident_list', //this is used to callAPI and set state for resident
  ]),
  getResidentName(id) {
    const resident = this.getResidentsById(id)
    return resident && resident.fullName
  },
},
watch: {
 allMedications: {
  handler: function () {
    const medicationArray = this.allMedications;
    console.log("Created this");
    this.medications = medicationArray.map(medication => ({
        ...medication,
        residentName: this.getResidentName(medication.resident)
    })
    );
  },
  immediate: true
  },
 }
}

Это в resident.js модуле получения

getResidentsById: (state) => (id) => {
    return state.residents.find(resident => resident.id === id)
}

Это установка residentName только при создании компонента, но если я reload/refresh, затем устанавливается residentName = undefined.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...