【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 小时前
基于Vue的学分预警系统98k51(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
2501_915909065 小时前
WebView 调试工具全解析,解决“看不见的移动端问题”
android·ios·小程序·https·uni-app·iphone·webview
2501_915106327 小时前
App 怎么上架 iOS?从准备资料到开心上架(Appuploader)免 Mac 上传的完整实战流程指南
android·macos·ios·小程序·uni-app·iphone·webview
王同学要变强8 小时前
【深入学习Vue丨第二篇】构建动态Web应用的基础
前端·vue.js·学习
程序定小飞8 小时前
基于springboot的web的音乐网站开发与设计
java·前端·数据库·vue.js·spring boot·后端·spring
武昌库里写JAVA8 小时前
element-ui 2.x 及 vxe-table 2.x 使用 css 定制主题
java·vue.js·spring boot·sql·学习
行走的陀螺仪9 小时前
uni-app + Vue3 实现折叠文本(超出省略 + 展开收起)
前端·javascript·css·uni-app·vue3
小禾青青9 小时前
uniapp安卓打包遇到报错:Uncaught SyntaxError: Invalid regular expression: /[\p{L}\p{N}]/
android·uni-app
环信即时通讯云10 小时前
实现小程序 uniApp 输入框展示自定义表情包
小程序·uni-app
不会算法的小灰10 小时前
Vue.js 基础教程:从入门到实践
前端·javascript·vue.js