vite + vue3 打包线上子组件通过update:modelValue更改值报错问题记录

在Vue项目中,遇到一个线上特有的问题,当触发change事件时,出现'xxxisnotdefined'错误。问题源于`ywmcbm`未在`onUpdate:modelValue`响应式设置。解决方案是通过`computed`属性定义`ywmcbm`,确保其正确响应数据变化。
摘要由CSDN通过智能技术生成

报错内容

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

html代码

<template>
	<el-cascader
       v-model="ywmcbm"
       :disabled="isReadOnly"
       :props="{ label: 'typeName', value: 'typeCode', emitPath: false }"
       :options="ywList"
       :show-all-levels="false"
       style="width: 100%;"
       @change="change"
	></el-cascader>
</tempalte>
// ts + setup
interface YwmcList {
  typeName: string
  typeCode: string
  children: YwmcList[]
  [key: string]: any
}
interface ParamsObj {
  id: string
  slr: string
  slsj: string
  sxbm: string
  sxmc: string
  ywxlbm: string
  ywxlmc: string
}
interface Props {
  modelValue: string
  ywmcbm: string
  isReadOnly: boolean
  ywmcList: YwmcList[]
  sxmcList: YwmcList[]
  specialField: any
  itemYwlx: string
  showBtn: boolean
}
const instance = getCurrentInstance()
const props = withDefaults(defineProps<Props>(), {
  ywmcbm: '',
  modelValue: '',
  isReadOnly: false,
  showBtn: false
})
const emit = defineEmits(['update:ywmcbm','update:modelValue','sureSave'])
const change = (val: string) => {
  emit('update:modelValue', '')
  emit('update:ywmcbm', val)
}

触发change事件时候,线上会报错

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

莫名其妙的问题,本地开发没有任何问题,测试反馈页面无法点击的时候,还以为线上不是最新的,更新线上后问题还在,才发现这问题有些棘手啊

解决方法:

const ywmcbm = computed({
  get: () => props.ywmcbm,
  set: (val) => emit('update:ywmcbm', val)
})
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值