v-model應(yīng)該給定一個(gè)數(shù)據(jù)變量,而不是一個(gè)函數(shù)。在Vue 3中,你還應(yīng)該使用ref
或reactive
來(lái)聲明這個(gè)變量,以創(chuàng)建響應(yīng)式狀態(tài),例如:
const filter = ref('')
現(xiàn)在,當(dāng)將其設(shè)置為選擇器的v-model時(shí),filter
將保存所選選項(xiàng)的值。然后,你需要做的第二件事是使用“on change”事件監(jiān)聽(tīng)器響應(yīng)選擇的變化,這樣每次filter
更新時(shí),你都可以將其提交到你的vuex存儲(chǔ)中。
<template> <div class="filter"> <select v-model="filter" @change="filterChange"> <option value="">全部</option> <option value="Alive">存活</option> <option value="Dead">死亡</option> <option value="unknown">未知</option> </select> </div> </template>
<script> import { ref } from "vue"; export default { setup() { const filter = ref(""); const filterChange = (e) => { console.log("filter", filter.value); // 可選:從實(shí)際事件中獲取值,而不是使用v-model console.log("來(lái)自事件的filter", e.target.value); }; return { filter, filterChange, }; }, }; </script>