最近在写项目时遇到复选框数据更改但是界面未被选中的问题,通过打印结果可以看到v-model数据已经更改但是界面并未更改状态,通过查询得知,虽然数据变了,但并没有触发model的set方法,所以当首次将selfModel设置为true后,后面get方法得到的值一直是true。产生这个问题的原因是,Vue 为了尽可能高效地渲染元素,通常会复用已有元素而不是从头开始渲染。

  • 这里推荐一个内置方法 this.$forceUpdate()
    在这里插入图片描述
    使用的话就直接用就行
	//html
	<el-checkbox @change="initIpt" class="ml30" 
	v-model="buildObj.constructionFeature.concrete"
	:disabled="enginnerObj.inTypeBool? true:!buildObj.constructionFeature.main_structure_engineering"
	>混凝土</el-checkbox>
	>
	//输入框需要重新渲染的话也可以用
	<el-input
	@input="initIpt()"
	v-model="buildObj.constructionFeature.design_cooling_load"  
	:placeholder="enginnerObj.inTypeBool?'':'单位(冷吨)'"        
	size="mini"
	></el-input>
	//js
	initIpt(){
	  this.$forceUpdate()
	},
Logo

前往低代码交流专区

更多推荐