vue.js - 值未使用自定义选择组件更新
问题描述
我有一个包含以下代码的组件:
<template>
<select
class="
py-1.5
px-2
outline-none
border-primary-lightblue border-2
rounded-xl
transition
duration-500
focus:border-primary-blue
"
>
<option
v-for="option in optionsWithDefaultState"
:key="option.value || option"
:value="option.value || option"
:selected="(option.value || option) === defaultValue"
:disabled="option === ' '"
:hidden="option === ' '"
>
{{ option.label || option }}
</option>
</select>
</template>
<script>
export default {
model: {
prop: "value",
event: "change",
},
props: {
options: {
type: Array,
default: () => [],
},
defaultValue: {
type: [Object, String],
default: " ",
},
},
computed: {
optionsWithDefaultState() {
return [" ", ...this.options];
},
},
};
</script>
<style></style>
当我将它与以下代码一起使用时,它可以工作
<v-dropdown
:value="teacherId"
:options="teachers"
@change.native="
(val) => {
teacherId = val.target.value;
}
"
></v-dropdown>
但有了这个它没有,我不知道为什么
<v-dropdown
v-model="teacherId"
:options="teachers"
></v-dropdown>
在 vue 文档中它说上面的代码将被转换为我在这里的第二个代码,但它仍然无法正常工作。
解决方案
您没有从组件发出任何事件。因此,v-modelchange
会监视传入的事件,但这些事件永远不会由您的组件发出,因此什么也不会发生。
<select
class="
...
"
@change="$emit('change', $event)"
>
推荐阅读
- java - 检测到 nodejs 版本后,Sonarqube CSS 分析失败
- python - 如何在 Sphinx 中将部分目录中的 rst 文件生成为 HTML 文件?
- typescript - 打字稿双同步/异步返回类型
- powershell - 字母数字排序在数组中不起作用
- mysql - Django 忽略 settings.py 中的数据库连接
- django - 如何使用 SQS 启动 Celery 容器
- android - 选择图像并将结果发送到android studio中的另一个活动保持强制关闭
- wordpress - 单个 URL 的 Worpress htaccess 重写规则
- mongodb - 如何使用猫鼬$near?(类型数据位置)
- postgresql - 码头工人 | Postgres 数据库未初始化且未指定超级用户密码