Заполните значениями - Dynami c выпадающих - PullRequest
0 голосов
/ 15 марта 2020

Я пытаюсь заполнить выпадающие списки значениями, в то время как выпадающие списки отправляются через реквизит. Я правильно получаю данные с сервера и храню их в массиве, где я использую этот массив для заполнения выбранного раскрывающегося списка. Эта проблема выглядит как ошибка Vuetify или Vue, но я не уверен.

Код для динамических выпадающих c выглядит следующим образом (Vuetify):

<v-col cols="12" lg="2" md="2" sm="6" xs="6" v-for="(dropdowns, index) in dropdownNumber" v-bind:key="index">

        <v-select
        :v-model="dropdowns.field_name"
        :loading="loadingInputs"
        :label="dropdowns.dropdown_name"
        :disabled="enableDropdowns"

        :items="getData[dropdowns.field_name]"
        :clearable="true"

        :item-text="dropdowns.field_name"
        :item-value="dropdowns.field_name"
        :item-key="dropdowns.field_name"
        @mousedown="changeFields(dropdowns.field_name, index)"
        @change="selectedValue(dropdowns.field_name, $event)"
        :multiple="dropdowns.multiple"
      >

      </v-select>

И функция для получения данных с сервера:

async getDropdownData($event, index) {

      const key = $event


     try {

      this.values['sector_name'] = this.categoryName()
      this.keys.forEach(element => {
        if(localStorage.getItem(element) != null) {
          this.values[element] = localStorage.getItem(element)
        } 
      });



      this.takeServerData = (await DataService.getDropdownData({
          existingValues: this.values,
          selectedDropdown: $event
      })).data 

      this.getData[key] = this.takeServerData


      console.log(this.getData)


     } catch (error) {
       this.error = "Dogodila se pogreška prilikom dohvaćanja vrijednosti za tu opciju."
     }
  },

Иногда, когда я редактирую мой код, он обычно заполняет уже нажатый выпадающий список, но после обновления сайта он не работает.

Пример фотографии: https://imgur.com/a/MutkZQC

Есть ли что-то у меня ' м отсутствует?

Любая помощь или совет приветствуется!

1 Ответ

1 голос
/ 17 марта 2020

Звучит как проблема реактивности, связанная с вложенными объектами.

https://vuejs.org/v2/guide/reactivity.html

Либо убедитесь, что ваши массивы предопределены в объекте getData.

data () {
    return {
      getData: {
         field1 : [],
         field2 : []
      }
  }
},

Или обновите объект getData следующим образом

this.$set(this.getData, key, this.takeServerData)

...