Vue3中 子组件内v-model绑定props接收到参数时报错update:modelValue

news2024/11/15 14:10:54

 开发过程中二次封装了一个搜索的组件,子组件内使用了el-select和el-input

参数分别对应父组件传入的selectValueselectText参数

子组件内部@change@input事件来同步触发组件中数据的修改

最终本地开发环境一切正常,部署到测试环境和生产环境后出现下方报错:

selectValue is not defined at d.onUpdate:modelValue.s.<computed>.s.<computed>

报错后开始反复查看本地都是没有任何警告的,但是测试环境就是有问题,没有办法只能根据控制台报错找原因,onUpdate:modelValue应该是在子组件内触发父组件修改导致的错误,但是确实给el-select绑定了@change事件。

后续参考Vue官网对于props的介绍,应该是@change事件的触发时机问题,虽然在数据改变后立马进行了emit,但还是不符合vue中props的单向数据流原则,解决方案:

Props | Vue.jsVue.js - 渐进式的 JavaScript 框架https://cn.vuejs.org/guide/components/props.html#one-way-data-flow

  • 在子组件内定义两个变量
  • 以计算属性的方式在get内第一时间接收父组件传入数据的变化
  • 当子组内v-model绑定的数据发生变化时,在set内触发父组件数据更新

原报错代码:

html结构:


    <div class="searchBox">
      <div>
        <el-select
          v-model="selectValue"
          :style="{ width: selectWidth }"
          @change="emit("update:selectValue", selectValue)"
        >
          <el-option
            v-for="item in options"
            :key="item.value"
            :label="item.label"
            :value="item.value"
          />
        </el-select>
        <el-input
          v-model.trim="searchText"
          @input="emit('update:searchText', searchText.trim())"
          :placeholder="`请输入要查找的${selectLabel}`"
          @keyup.enter="emit('getTemplate')"
        >
        </el-input>
        <el-button type="primary" @click="emit('getTemplate')">搜索</el-button>
      </div>
    </div>

js:

const emit = defineEmits([
  "openDialog",
  "getTemplate",
  "update:selectValue",
  "update:searchText",
]);
const props = defineProps({
  selectValue: String,
  searchText: String,
  showAddBtn: {
    type: Boolean,
    default: true,
  },
  selectWidth: {
    type: String,
    default: "100px",
  },
  options: {
    type: Array,
    default: () => [],
  },
});

后续使用了compute计算属性get/set来触发props数据的修改就解决了问题

修改后代码:html中删除@change和@input事件后,基于上方js代码添加:

//在上面js代码基础上加上
const selectValue = computed({
  get: () => props.selectValue,
  set: (val) => {
    emit("update:selectValue", val);
  },
});

const searchText = computed({
  get: () => props.searchText,
  set: (val) => emit("update:searchText", val),
});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/67908.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]JAVA毕业设计仁爱公益网站(系统+LW)

[附源码]JAVA毕业设计仁爱公益网站&#xff08;系统LW&#xff09; 项目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&…

判断一份好的问卷有哪些标准?

问卷的主要由三个部分组成&#xff1a;问卷说明、问卷主题、问卷结束。而这三个部分又包含了很多因素&#xff0c;比如问卷主题、问卷标题、问卷题目、问卷调查对象等。制作问卷不仅仅是简单的问题罗列&#xff0c;然后进行发放。不同质量的调查问卷会反馈出不一样的效果&#…

Spring Cloud微服务之eureka+client入门

Spring Cloud微服务之eurekaclient入门 谈到服务&#xff0c;想到一种“懒人思维”。家政服务为懒人收拾家务提供一种便利&#xff0c;快餐服务为不爱做饭的懒人提供一种方便.....等等。 说到微服务&#xff0c;顾名思义&#xff0c;就是把服务再细微化。比如需要送女友一束花…

FastReport Desktop 2023Microsoft SQL存储过程的支持

FastReport Desktop 2023Microsoft SQL存储过程的支持 添加了用于从JasperReports转换报告的模板。 添加了对连接到Microsoft SQL存储过程的支持。 在RTF中&#xff0c;添加了一项设置&#xff0c;以提高打印时的图像质量。 添加了导出到Microsoft Excel 2007时从“货币”转换为…

Landsat数据下载

Landsat数据下载步骤0 Landsat数据介绍1 下载地址2 下载步骤2.1 检索数据2.1.1 设置地点&#xff0c;有多种方法2.1.2 选择时间范围2.1.3 在Data Sets界面选择传感器&#xff08;卫星或者传感器的名称&#xff09;2.2 限定云量2.3 下载数据这是个老生常谈的话题了&#xff0c;我…

[附源码]Python计算机毕业设计Django校园快递柜存取件系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

ubuntu上msquic带根证书的测试使用

ubuntu上msquic带根证书的测试使用 1.证书1.1 根证书的生成1.2 根证书的导入1.4 openssl验证书1.5 修改/etc/hosts2. msquic编译2.1 quic协议编译2.2 示例程序编3.本地测试1.证书 1.1 根证书的生成 假设我们的域名为: www.contoso.com 创建CA私钥 openssl ecparam -out cont…

java Object类 包装类

目录 Object 类的使用 操作符与equals方法  &#xff1a; equals() 重写equals()方法的原则 面试题 toString() 方法 包装类(Wrapper)的使用 基本类型、包装类与String类间的转换 包装类用法举例 总结 Object 类的使用  Object类是所有Java类的根父类  如果…

最新出炉的U-Net研究性综述:Medical Image Segmentation Review: The Success of U-Net

热乎的Medical Segmentation 综述1 文章介绍2 前言3 U-Net变型4 Skip Connection Enhancements4.1 Increasing the Number of Skip Connections4.2 Processing Feature Maps within the Skip Connections4.3 Combination of Encoder and Decoder Feature Maps5 Backbone Design…

每天一个面试题:四种引用,弱引用防止内存泄漏(12.7.2022)

每天一个面试题&#xff1a;四种引用四种引用基本介绍实例Demo- 虚引用弱引用防止内存泄漏弱引用Debug分析源码开始全新的学习&#xff0c;沉淀才会有产出&#xff0c;一步一脚印&#xff01; 面试题系列搞起来&#xff0c;这个专栏并非单纯的八股文&#xff0c;我会在技术底层…

配对交易之统计套利配对:协整(cointegration)

Engle和Granger观察到了一个相当有趣的现象。尽管两个时间序列是非平稳的&#xff0c;但在某些情况下&#xff0c;两者的特定线性组合实际上是平稳的&#xff1b;也就是说&#xff0c;这两个序列在某种程度上是步调一致的。Engle和Granger创造了“协整”&#xff08;cointegrat…

【Tensorflow+自然语言处理+LSTM】搭建智能聊天客服机器人实战(附源码、数据集和演示 超详细)

需要源码和数据集请点赞关注收藏后评论区留言私信~~~ 一、自然语言处理与智能 自然语言处理技术是智能客服应用的基础&#xff0c;在自然语言处理过程中&#xff0c;首先需要进行分词处理&#xff0c;这个过程通常基于统计学理论&#xff0c;分词的精细化可以提升智能客服的语…

小白课程,前端入门新手,必须了解的回调函数概念和应用实例

******内容预警******新手内容&#xff0c;大佬请绕道 做为一个纯纯的小白&#xff0c;我相信很多人是没有回掉函数这个概念的&#xff0c;虽然很多文档和教程中都有提到&#xff0c;但是很多人看完文档也不会用。因为菜鸟的开发任务&#xff0c;都是简单画一下html页面&#x…

分布式定时调度:xxl-job 最佳实践详解

文章目录一、定时任务概述1.1. 什么是定时任务1.2. 常见定时任务方案1.3. 分布式定时任务面临的问题1.4. 分布式定时任务xxl-job二、xxl-job架构设计2.1. 设计思想2.2. 架构设计图三、xxl-job安装3.1.下载源码3.2. 导入数据库3.3. 启动调度中心3.4. 配置部署“执行器项目3.5. 案…

护眼灯有用吗?双十二买什么样的护眼灯真的有效果

对于很多人来说&#xff0c;健康是一个越来越重视的话题&#xff0c;特别是现代社会生活节奏很快&#xff0c;很多人的眼睛都吃不消&#xff0c;所以不管是为了好看&#xff0c;还是为了能够看得足够远&#xff0c;都会注意保护眼睛&#xff0c;所以越来越多的人开始考虑护眼台…

网站变灰,6行代码,通通变灰

人狠话不多&#xff0c;直接上代码 -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o-filter: grayscale(100%); filter: grayscale(100%); filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale1); 通通变灰&…

Java中Map集合体系的基本使用和常用API

文章目录Map集合体系Map集合概述和使用Map集合体系的特点Map集合常用的APIMap集合体系 Map集合概述和使用 Map集合是一种双列集合&#xff0c;每个元素包含两个数据。 Map集合的每个元素的格式&#xff1a;keyvalue(键值对元素)。 Map集合也被称为“键值对集合”。 Map集合整体…

本地代码上传到gitlab

1、在本地代码目录中&#xff0c;鼠标右键Git Bash Here&#xff0c;会打开一个git命令操作窗口&#xff1b; 2、执行git init命令&#xff0c;此命令会在当前目录下创建一个.git文件夹, git init 3、将项目的所有文件添加到仓库中&#xff0c; git add -A 4、将add的文件…

【计算机毕业设计】75.教师工作考核绩效管理系统源码

一、系统截图&#xff08;需要演示视频可以私聊&#xff09; 摘 要 随着社会不断进步与发展&#xff0c;生活节奏不断加快&#xff0c;信息已经成为我们生活中不可缺少的一部分&#xff0c;很多学校需要掌握大量的信息来了解特定学生的需求&#xff0c;传统的做法是组织大量的…

如何实现table表头固定但是tbody可以滚动【附源码实例】

【写在前面】经常看到表头固定&#xff0c;表身支持滚动的需求&#xff0c;由于项目经常会用到一些自定义的表格展示数据&#xff0c;之前经常发现每次都是自己去写&#xff0c;自己去重新定义样式&#xff0c;觉得特别的麻烦&#xff0c;现在我特针对这类的分享一下。 1、页面…