【uniapp重大bug】uni-data-select的localdata改变,也会触发@change方法

bug描述

uni-data-select的下拉列表值localdata是动态获取的,且绑定了@change方法,在页面加载后,请求localdata的列表数据,给localdata重新赋值,此时发现自动触发了@change方法

当前uni版本:^2.0.2-3070920230324001 vue2

bug复现过程

页面写个简单的演示代码:

javascript 复制代码
<uni-forms ref="form" :modelValue="formObj" label-position="top" label-width="100%">
  <uni-forms-item label="绑定单位:">
    <uni-data-select
      v-model="formObj.tenantId"
      :localdata="tenantList"
      placeholder="请选择绑定单位"
      @change="changeTenant"
    ></uni-data-select>
  </uni-forms-item>
</uni-forms>

export default {
  data() {
	return {
	  tenantList: [],
      formObj: {
        tenantId: null,
      },
	}	
  },
  methods: {
	changeTenant(e) {
      console.log('uni-data-select改变了')
    },
  }
}

这样写没啥事,此时localdata绑定的是个静态值,下面我们改变一下localdata(想当于实际业务中的获取接口值)

我们在created()中改变该值:

javascript 复制代码
setTimeout(() => {
  this.tenantList = [
    { value: 1, text: '中国移动', },
    { value: 2, text: '中国联通', },
  ]
}, 1000)

这时你会发现,已经自动触发@change方法了,而且还触发了两次

解决方案

这是组件的问题,没法从根源解决

其他方案

不要使用组件的@change方法,自己用watch监听值变化吧

相关推荐
前端 贾公子4 小时前
解决浏览器端 globalThis is not defined 报错
前端·javascript·vue.js
JianZhen✓5 小时前
2026前端高频面试题总结(Vue/JS/网络/Webpack/性能优化/手写)
前端·javascript·vue.js
SoraShim5 小时前
2026实测:深入理解Gemini 3 Pro镜像站链式思考提示工程,三步解决复杂Bug定位
bug
贫民窟的勇敢爷们5 小时前
Spring Boot+Vue电商系统开发实战:架构设计与核心实现
vue.js·spring boot·后端
李白的天不白5 小时前
webpack 与 vue-loader 版本冲突问题
前端·vue.js·webpack
RuoyiOffice6 小时前
SpringBoot+Vue3 实现 OA 公文外来文与归档台账:外部收文、BPM办理、三类公文统一归档
spring boot·微服务·uni-app·vue·ruoyi·anti-design-vue·ruoyioffice
你真的快乐吗1 天前
@fuxishi/svg-icon:一个 Vue 3 svg本地图标+iconify图标组件库,让图标管理不再头疼
前端·vue.js·typescript
吴声子夜歌1 天前
Vue3——脚手架Vite
前端·javascript·vue.js·vite
云起SAAS1 天前
私域直播系统UniApp源码 多商户商城+直播带货 微信小程序+H5+安卓iOS
android·微信小程序·uni-app·私域直播系统
AI 编程助手GPT1 天前
GPT-5.6意外曝光、Claude安全检查全面公测、Grok 4.3搅局价格战——多模型混战的五月,开发者如何避坑?
人工智能·gpt·ai·chatgpt·bug·ai编程