Riley_li 2021-12-03 00:54 采纳率: 0%
浏览 586

vue数据渲染问题,使用this.$set和this.$forerUpdate都无效

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()
      }
    },

  • 写回答

1条回答 默认 最新

  • CSDN专家-Time 2021-12-03 11:47
    关注

    img

    评论

报告相同问题?

问题事件

  • 创建了问题 12月3日

悬赏问题

  • ¥15 提问一个关于vscode相关的环境配置问题,就是输入中文但是显示不出来,代码在idea可以显示中文,但在vscode不行,不知道怎么配置环境
  • ¥15 netcore使用PuppeteerSharp截图
  • ¥20 这张图页脚具体代码该怎么写?
  • ¥20 WPF MVVM模式 handycontrol 框架, hc:SearchBar 控件 Text="{Binding NavMenusKeyWords}" 绑定取不到值
  • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂
  • ¥15 数字信号处理考试111
  • ¥15 allegro17.2生成bom表是空白的
  • ¥15 请问一下怎么打通CAN通讯
  • ¥20 如何在 rocky9.4 部署 CDH6.3.2?
  • ¥35 navicat将excel中的数据导入mysql出错