vue.js - 如何在 vue 组件中使用另一个方法的变量?
问题描述
我在 vue 组件中有两种方法。
首先让用户从 v-select 中选择 itemone 或 itemtwo。然后,为了稍后检索值,我调用 @change 将变量分配给稍后声明的方法 - getItemValue
。
第二个是提交按钮,点击后,我们转到handleSubmit
.
调用后handleSubmit
,我想使用从getItemValue
(在变量中theItem
)获得的值,但是如果它超出了我的范围,我该如何调用另一个方法?
我的组件.vue
<template>
<v-form
ref="form"
v-model="valid"
lazy-validation
>
<v-select
v-model="select"
:items="items"
@change="getItemValue"
></v-select>
<v-btn
@click="handleSubmit"
>
Submit
</v-btn>
</v-form>
</template>
<script>
export default {
data: () => ({
items: [
'itemone',
'itemtwo'
],
}),
methods: {
getItemValue(theItem) {
},
handleSubmit(e) {
e.preventDefault()
// i need "theItem" here!
}
},
}
</script>
解决方案
v-model
已经写入您的局部变量,因此绝对不需要设置get
将选择值写入变量的方法。
实际上,v-model 比仅仅“写入”到一个变量要复杂一些,但重要的是在你的模板中你正在设置v-model="select"
,这基本上意味着每当用户使用 select 来选择一个值时,你的本地select
变量将使用所选值更新。
现在,select
您的示例组件中没有data
,我不知道为什么。但如果你有它,你可以在你的handleSubmit
:
<template>
<v-form
ref="form"
v-model="valid"
lazy-validation
>
<v-select
v-model="select"
:items="items"
></v-select>
<v-btn
@click="handleSubmit"
>
Submit
</v-btn>
</v-form>
</template>
<script>
export default {
data: () => ({
select: '',
items: [
'itemone',
'itemtwo'
],
}),
methods: {
handleSubmit(e) {
e.preventDefault()
doSomethingWith(this.select); // this will be updated at this point
// with the option the user selected
}
},
}
</script>
但是,现在请注意,如果select
变量是组件 prop,则不应立即执行此操作,因为 prop 不打算由子组件直接修改。如果是这种情况,请使用更多信息更新您的问题。
推荐阅读
- android - 尝试使用 Apple MusicKit SDK 进行身份验证时出现 USER_CANCELLED 令牌错误
- java - 通过使用弹簧批处理逐行插入数据来修复列表大小问题
- twitter-bootstrap - Yarn 自定义 Bootstrap 安装 config.json
- css - 设置与其他 div 相同的高度,不使用 javascript,并且在 flexbox 内
- prometheus - 带有前缀的所有普罗米修斯指标的 Grafana 变量
- java - DownloadManager 在 Android Q 上不起作用 - Android/Java
- python - 如何提高图像分类器的准确性?
- kotlin - 你如何解决 Kotlin 中的循环导入
- python-3.x - How to get indices of drag and drop in PyQt5
- php - whereMonth 未能按月检索约会日期