当前位置: 首页 > news >正文

vue响应式数据-修改对象的属性值,视图不更新

如图:
在这里插入图片描述

一:问题是:
我把数据处理后能console.log()打印出来,但是页面的内容不能同步的更新渲染;
二:要求:
在数组循环列表里面,我点击单个的item按钮时,需要实时加载进度条到90%,并改变item的flowStatus值同时在页面上渲染当前改变后的状态值。
三:方式:
用了$delete()先删除这个已经存在并且要改变的键值flowStatus;

this.$delete(flow,‘flowStatus’)

再$set()重新赋值flowStatus为我需要的状态值:

this.$set(flow,‘flowStatus’,‘0’)

进度条加载一样。。。
四:代码

<el-row v-for="(flow,i) in item.children" :key="flow.flowId" class="flowinfo"><el-col :span="10" :offset="1"  style=""><div><template><el-tag v-if="flow.flowStatus === 10 || flow.flowStatus === 20" color="#red">{{'等待中'}}</el-tag><el-tag v-if="flow.flowStatus === '0'"  color="#E9EAAC">{{'启动中...'}}</el-tag></template></div><div class="flow"><el-row><el-col v-if="flow.flowStatus === 30" :span="15" :offset="2">任务进度:<el-progress :percentage="90" :key="i" :format="format" top="20px"></el-progress></el-col><el-col v-else :span="15" :offset="2">任务进度:<el-progress :percentage="flow.percentage" :key="i" :format="format" top="20px"></el-progress></el-col></el-row></div></el-col><el-col :span="10" :offset="1"><div style="padding-bottom: 30px;" ><el-button v-else style="float: right;" type="primary" size="mini" @click="start(flow)" >{{ '启动' }}</el-button></div></el-col></el-row>

启动按钮
主要看前面几行:有注释的
点击某条列表的按钮后,该对象里面的状态值flowStatus由a变为b,进度条自己加载到90%

start(flow) {this.$nextTick(() => {this.$delete(flow,'flowStatus')          //先删掉对象里的flowStatus值this.$set(flow,'flowStatus','0')         //再新增flowStatus值为0  (第一个值为要改变的对象,第二个为要改的键名,第三个为改后的键值)if(flow.percentage < 100) {              //这是进度条的变化this.$delete(flow,'percentage')        //删掉对象里的percentagethis.$set(flow, 'percentage', 90);      //  再新设置percentage值,使其发生变化为90}this.$forceUpdate()setTimeout(() => {let username = storage.get("baseInfo", "local") ? storage.get("baseInfo", "local").username : null;const queryForm = {projectId: projectId,...}startExecutor(queryForm).then(res => {if(res.code === "200") {this.$message.success('执行成功')} else {this.$notify({title: '执行错误',message: res.message,type: 'warning'});}setTimeout(() => {this.getTaskList(this.taskData)}, 1000);})}, 3000);})},

点击改变的是里面的flowStatus和percentage

item.children=[
{
“execFlowList”: [
{
“runDate”: “20241205”,
“submitTime”: 1733469100453,
“submitUser”: “hadoop”,
“difftime”: “0 sec”,
“startTime”: “2024-12-06 15:11:40”,
“comment”: “”,
“endTime”: “2024-12-06 15:11:40”,
“flowId”: “defence”,
“projectId”: 6,
“outTime”: “0 sec”,
“execId”: 230,
“status”: “FAILED”
}
],
“percentage”: 0,
“flowExecId”: 230,
“flowStatus”: 70,
“flowId”: “defence”
}…
]

http://www.lryc.cn/news/505567.html

相关文章:

  • 【OpenCV计算机视觉】图像处理——平滑
  • C#编程报错- “ComboBox”是“...ComboBox”和“...ComboBox”之间的不明确的引用
  • JAVA:访问者模式(Visitor Pattern)的技术指南
  • YashanDB共享集群产品能力观测:细节足见功底
  • 【Linux】—简单实现一个shell(myshell)
  • @FeignClient用于Nacos微服务间的接口调用
  • 认识javascript中的模块化
  • 容器设计模式:Sidecar
  • ensp 静态路由配置
  • MATLAB图卷积神经网络GCN处理分子数据集节点分类研究
  • Android-Glide详解
  • 2.Nuxt学习 组件使用和路由跳转相关
  • 代码开发相关操作
  • 动态导出word文件支持转pdf
  • 登陆harbor发现证书是错误的, 那么如何更新harbor的证书呢
  • 【Leetcode Top 100】199. 二叉树的右视图
  • React自学:如何使用localStorage,以及如何实现删除笔记操作
  • go语言使用websocket发送一条消息A,持续接收返回的消息
  • 如何对小型固定翼无人机进行最优的路径跟随控制?
  • C++常见面试题-初级2
  • Spring Security 6 系列之二 - 基于数据库的用户认证和认证原理
  • mfc140.dll是什么东西?mfc140.dll缺失的几种具体解决方法
  • 【STM32 Modbus编程】-作为主设备写入多个线圈和寄存器
  • Windows安全中心(病毒和威胁防护)的注册
  • 微积分复习笔记 Calculus Volume 2 - 4.2 Direction Fields and Numerical Methods
  • 深入理解旋转位置编码(RoPE)及其在大型语言模型中的应用
  • 内网穿透的应用-在OpenWrt上轻松搭建SFTP服务,安全传输文件不再难!
  • 【图像处理lec3、4】空间域的图像增强
  • 【算法day13】二叉树:递归与回溯
  • 上海亚商投顾:创业板指缩量下跌 多只高位股午后跌停