Предупреждение: select ожидает значение Array для своей привязки, но получил String - PullRequest
0 голосов
/ 22 апреля 2020

приложение, над которым я работаю, содержит 3 или 4 страницы, где пользователю предлагается ввести некоторые данные в различные поля (ввод, выбор). Если пользователь хочет go вернуться на страницу, необходимо отобразить предыдущие данные (я получаю их из магазина, используя вычисленные свойства). Он хорошо работает с полями типа ввода, однако я получаю предупреждение с полями выбора типа:

[Vue warn]: <select multiple v-model="tax"> expects an Array value for its binding, but got String

Вот фрагмент кода в разделе шаблона файла selectTax. vue file:

<select v-model="tax" multiple="multiple">                      
  <option value="tax1">Tax1</option>
  <option value="tax2">Tax2</option>
  <option value="tax3">Tax3</option>

Вот фрагмент кода в разделе сценариев файла selectTax. vue file:

 tax: {
      get() {
        return this.$store.getters.taxtype;
      },
      set(value) {
        this.$store.commit("setTaxType", value[0]);
      }
    }

Проблема в том, что вычисленный налог на имущество строка, а не массив.

Есть ли способ исправить это? Спасибо за помощь.

1 Ответ

0 голосов
/ 22 апреля 2020

При использовании <select multiple модель данных является не строкой, а array.

. Это связано с тем, что пользователь может выбрать более одной опции.

У вас есть 2 варианта :

  • обновить тип данных для this.$store.getters.taxtype, который будет инициализирован массивом (скорее всего, пустым), и обновить
set(value) {
  this.$store.commit("setTaxType", value);
}
  • или удаленный multiple из выбранных
...