vue数据渲染问题,使用this.$set和this.$forerUpdate都无效,使用this.$forerUpdate可以看见值被改变页面但是不渲染,是用 = 和 this.$set赋值值根本不带动的
页面事件,ui是ANT V ,
<span slot="processName" slot-scope="row">
<a-auto-complete
v-model="editTableData[row.index].processName"
:data-source="dataSourceComponent"
placeholder=" 请选择工序名"
@dblclick.native="onProcessNameClick"
@blur="onProcessNameSelect(row.index,editTableData[row.index].processName)"
@select="onProcessNameSelect(row.index,editTableData[row.index].processName)"
@search="onProcessNameSearch"
/>
</span>
js如下
onProcessNameSelect(index, value) {
console.log(this.categoryProcessPriceList)
let result = true
for (let i = 0; i < this.categoryProcessPriceList.length; i++) {
if (this.categoryProcessPriceList[i].processName == value) {
this.editTableData[index].processName = this.categoryProcessPriceList[i].processName
this.editTableData[index].processNum = this.categoryProcessPriceList[i].gxxh
this.editTableData[index].processCode = this.categoryProcessPriceList[i].processCode
this.editTableData[index].price = this.categoryProcessPriceList[i].labourCost
this.editTableData[index].isPrice = true
result = false
}
}
if(result){
//上面的赋值完全没问题,进入下面的方法后,上面的赋值也会出现问题
// this.editTableData[index].price = ""
// this.editTableData[index].processName = value
// this.editTableData[index].processNum = ""
// this.editTableData[index].processCode = ""
// this.editTableData[index].isPrice = false
this.$set(this.editTableData[index],"price",0)
this.$set(this.editTableData[index],"processName",value)
this.$set(this.editTableData[index],"processNum","")
this.$set(this.editTableData[index],"processCode","")
this.$set(this.editTableData[index],"isPrice",false)
// this.editTableData[index].processName = value
// this.editTableData[index].processNum = ""
// this.editTableData[index].processCode = ""
// this.editTableData[index].isPrice = false
this.$forceUpdate()
}
},