Я хочу сохранить значение из опции ion-select в локальном хранилище. Однако он возвращает «неопределенное». Я использую Ionic и Vue 3.0.0.
Как я могу получить выбранный вариант и сохранить его в локальном хранилище?
Ионный выбор:
<ion-item>
<ion-select
@ionChange = "store(options)"
v-model = "options"
placeholder = "Kies status"
>
<ion-select-option
v-for = "option in options"
v-bind:value = "{ id: option.id, text: option.name }"
v-bind:key = "option"
>
{{ option.name }}
</ion-select-option>
</ion-select>
</ion-item>
Параметры
return {
selected: "",
options: [
{ id: 1, name: "Gelezen" },
{ id: 2, name: "Nog niet gelezen" },
{ id: 3, name: "C" },
],```
Метод
methods: {
store(value) {
const name = value.name;
console.info("name" +name);
const selected = localStorage.setItem("option", name);
},
Вы можете получить выбранное значение из свойства detail
испускаемого CustomEvent
:
Обратите внимание, что я удалил (options)
из обработчика событий.
Шаблон:
<ion-select
@ionChange = "store"
v-model = "options"
placeholder = "Kies status"
>
Метод:
methods: {
store(event) {
const name = event.detail.value;
console.info("name" + name);
const selected = localStorage.setItem("option", name);
},
Кстати, localStorage.setItem()
всегда возвращает undefined, поэтому нет смысла сохранять его в переменную (в вашем случае selected
.
А, это потому, что вы устанавливаете значение для объекта ({ id: option.id, text: option.name }
), поэтому вам придется использовать event.detail.value.id
или event.detail.value.name
.
Я получаю: [объект Объект]