Vuetify v-select onchange 事件 returns 以前 selected 值而不是当前值
Vuetify v-select onchange event returns previously selected value instead of current
我有一个 <v-select>
下拉列表,我想将其用作 URL 列表以导航到其他页面。我 运行 遇到的问题是 onchange
我正在使用 returns 之前选择的值而不是当前选择的值的事件。
我调整了代码以打印到控制台而不是用于测试。 :hint
功能运行良好,所以我确定它与 onchange
功能有关。
代码如下:
<template>
<v-app>
<v-container fluid>
<v-layout row wrap>
<v-flex xs6>
<v-select
:items="items"
v-model="select"
label="Select"
single-line
item-text="report"
item-value="src"
return-object
persistent-hint
v-on:change="changeRoute(`${select.src}`)"
:hint="`${select.src}`"
></v-select>
</v-flex>
</v-layout>
</v-container>
</v-app>
</template>
<script>
/* eslint-disable */
new Vue({
el: '#app',
data () {
return {
select: { report: 'Rep1', src: '/rep1' },
items: [
{ report: 'Rep1', src: '/rep1' },
{ report: 'Rep2', src: '/rep2' }
]
}
},
methods: {
changeRoute(a) {
//this.$router.push({path: a })
console.log(a)
}
}
})
</script>
我不知道为什么 change
不能正常工作。但是 input
确实有效。
https://codepen.io/jacobgoh101/pen/erBwKa?editors=1011
v-on:input="changeRoute(`${select.src}`)"
您不需要指定数据,因为我猜这就是更改事件默认传递的内容。
所以改变:
v-on:change="changeRoute(`${select.src}`)"
只是
v-on:change="changeRoute"
并且在函数调用中:
changeRoute(a) {
this.$router.push({path: a.src })
console.log(a)
}
我完全不知道为什么 ${select.src} 在更改事件时保持之前的值。
您可以尝试使用以下代码:
<v-select @change="changeRoute" ></v-select>
methods: {
changeRoute(selectObj) {
console.log(selectObj)
console.log(selectObj.src)
}
}
我有一个 <v-select>
下拉列表,我想将其用作 URL 列表以导航到其他页面。我 运行 遇到的问题是 onchange
我正在使用 returns 之前选择的值而不是当前选择的值的事件。
我调整了代码以打印到控制台而不是用于测试。 :hint
功能运行良好,所以我确定它与 onchange
功能有关。
代码如下:
<template>
<v-app>
<v-container fluid>
<v-layout row wrap>
<v-flex xs6>
<v-select
:items="items"
v-model="select"
label="Select"
single-line
item-text="report"
item-value="src"
return-object
persistent-hint
v-on:change="changeRoute(`${select.src}`)"
:hint="`${select.src}`"
></v-select>
</v-flex>
</v-layout>
</v-container>
</v-app>
</template>
<script>
/* eslint-disable */
new Vue({
el: '#app',
data () {
return {
select: { report: 'Rep1', src: '/rep1' },
items: [
{ report: 'Rep1', src: '/rep1' },
{ report: 'Rep2', src: '/rep2' }
]
}
},
methods: {
changeRoute(a) {
//this.$router.push({path: a })
console.log(a)
}
}
})
</script>
我不知道为什么 change
不能正常工作。但是 input
确实有效。
https://codepen.io/jacobgoh101/pen/erBwKa?editors=1011
v-on:input="changeRoute(`${select.src}`)"
您不需要指定数据,因为我猜这就是更改事件默认传递的内容。
所以改变:
v-on:change="changeRoute(`${select.src}`)"
只是
v-on:change="changeRoute"
并且在函数调用中:
changeRoute(a) {
this.$router.push({path: a.src })
console.log(a)
}
我完全不知道为什么 ${select.src} 在更改事件时保持之前的值。 您可以尝试使用以下代码:
<v-select @change="changeRoute" ></v-select>
methods: {
changeRoute(selectObj) {
console.log(selectObj)
console.log(selectObj.src)
}
}