Vue обновление значения после обновления страницы - PullRequest
0 голосов
/ 31 мая 2018
<v-layout row wrap>
  <v-flex class="hidden-sm-and-down" md4>
    <v-subheader class="fields">Select Venue</v-subheader>
  </v-flex>
  <v-flex xs12 md8>
    <v-select class="select__box" :items="venues" v-model="venue" item-text="name" item-value="_id" label="Select Venue" prepend-icon="edit_location" autocomplete :error-messages="venueErrors" @blur="delayTouch($v.venue,200)" @input="delayTouch($v.venue,200)"></v-select>
  </v-flex>
</v-layout>


created: async function() {
  try {
    let response = await CommonRequest.getVenues();
    let array = response.data.venues;
    let i = 0;
    for (let ven of array) {
      this.venues[i] = Object.assign({}, this.venues, {
        name: ven.name,
        _id: ven._id
      });
      i++;
    }
  } catch (error) {
    if (error) console.log(error);
  }
}       

здесь идентификатор списка мест обновляется только после того, как я обновляю свою страницу. Даже если данные поступают раньше (как я делал console.log (this.venues), чтобы проверить, поступили ли данные или нет)

1 Ответ

0 голосов
/ 31 мая 2018

Как отмечено в документах , прямое назначение элементов массива не является реактивным.

  this.venues[i] = Object.assign({}, this.venues, {
    name: ven.name,
    _id: ven._id
  });

Вместо этого вы можете сделать

  this.$set(this.venues, i, Object.assign({}, this.venues[i], {
    name: ven.name,
    _id: ven._id
  }));

Обратите внимание, что в вашем исходном коде также отсутствует индекс во втором параметре, равный Object.assign

...