关于vue在列表展示数据的时候,更改其中一项,列表没有跟着实时变动的问题

背景:

使用低代码自动生成的Vue前端大致页面,然后自定义其中的业务

涉及的页面:

 遇到的问题:

点击添加后,直接变更添加行的状态(输入框不可编辑、状态变为已激活)

涉及代码:

复制代码
    addRecordAndApply(index) {
      let thatthis = this;
      let indexData = this.dataList[index];
      indexData.enterpris = queryModel.enterpris
      // indexData.id = '111111'

      //1更新完数据后,页面未渲染
      //  this.dataList.splice(index, 1,indexData)

       //2更新完数据后,页面未渲染
      // this.$set(this.dataList,index,indexData)

       //3深拷贝 更新完数据后,页面渲染
      // this.$set(this.dataList,index,_.cloneDeep(indexData))
      // // thatthis.$forceUpdate()

      // return;
      dibootApi.post(`${thatthis.baseApi}/`, indexData).then(res => {
        console.log(res)
        if (res.ok) {
          //4新内存数据 更新完数据后,页面渲染
          thatthis.$set(thatthis.dataList,index,res.data)
          thatthis.$message.success('已添加')

        } else {
          thatthis.$message.error(res.msg)
        }

      }).catch((e) => {
        thatthis.$message.error(e.message)
      })


    },
复制代码

如上所示,在列表中更新数据,如果不是深拷贝或者新建的数据,不会触发Vue的页面渲染

 

posted @   timseng  阅读(422)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示