Vuetify v-select onchange 事件返回之前选择的值而不是当前值

新手上路,请多包涵

我有一个 <v-select> 下拉列表,我想将其用作 URL 列表以导航到其他页面。我遇到的问题是 onchange 我正在使用的事件返回先前选择的值而不是当前选择的值。

我已经调整了代码以打印到控制台而不是进行测试。 :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>

原文由 Matthew Snell 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

您不需要指定数据,因为我猜这就是 change 事件默认通过的原因。

所以改变:

 v-on:change="changeRoute(`${select.src}`)"

只是

v-on:change="changeRoute"

并在函数调用中:

   changeRoute(a) {
    this.$router.push({path: a.src })
    console.log(a)
  }

原文由 A. L 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题