RileyUsagi
@RileyUsagi
Developer

Как задать выбранный option в select в Vuex?

Прошу прощения за довольно банальный вопрос, но, поскольку подобные вещи повторяются по всему проекту, было бы неплохо разобраться. Однако без вашей помощи не обойдусь.

Суть проблемы описана в заголовке. При загрузке страницы должен быть выбран определённый пункт выпадающего списка. Никаких ошибок с данными нет. Однако селект установлен на пустом варианте при загрузке страницы.

Замечу, что, не хотелось бы отказываться от геттеров и сеттеров в пользу всяких data () {} и methods: {}. Уже делал в таком варианте и получилось довольно громоздко и некрасиво.

<template lang="pug">
  #credit
    span.h2 Кредит
    .container
      .row

        //- Статус кредитования
        .col-md-12
          h6.type--uppercase
            .input-select
              select.select.required(v-model="selectedCreditStatus")
                option(v-for="status in ['Да', 'Нет']" :value="status") {{ status }}
    hr
</template>

<script>
export default {
  computed: {

    // Статус кредитования
    selectedCreditStatus: {

      // Получаем статус кредитования из хранилища
      get () { this.$store.getters['newRequest/selectedCreditStatus'] },

      // Обновляем статус кредитования в хранилище
      set (value) { this.$store.dispatch('newRequest/setCreditStatus', value) }
    }
  }
}
</script>
  • Вопрос задан
  • 308 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
get () { this.$store.getters['newRequest/selectedCreditStatus'] }

Нигде return не потеряли?

Замечу, что, не хотелось бы отказываться от геттеров и сеттеров в пользу всяких data () {} и methods: {}. Уже делал в таком варианте и получилось довольно громоздко и некрасиво.

Если вдруг откажетесь (если что, я этого делать не призываю), ничего громоздкого писать не придётся, класть в data ничего не нужно, создавать метод не обязательно. Чем является v-model? - это привязка значения + прослушивание события. Т.е.,

:value="геттер" + @input="мутация($event.target.value)"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы