首页 > 其他分享 >近期工作总结#6

近期工作总结#6

时间:2023-05-18 10:11:07浏览次数:39  
标签:总结 citem item title 近期 else 工作 set data

遇到一个很尴尬的问题

network里面有返回值,但是打印不出来,打印出来里面的值就是空的,然后经过询问排查才知道,console的打印的值存在内存里,但是如果你的代码有处理之后,在打印里面就会变成处理后的值,当你点开的时候,这个值在内存里放着,你点击的时候才会调用它,但是此时的值以及被处理过了,所以我打印出来的值就是空的,说的有点乱,上图!
image

这里我打印出来是1

image

这里我赋值b为2,打印出来自然是2,但是上面的b还是1对吧,咱们打开看看

image

!!!变成2了!!,很神奇对吧,这里就是点开查看的时候,浏览器会调用内存,此时内存里的b以及变成了2,所以会显示成2,这就是哪怕你的代码打印在前,操作在后,打印出来也还是操作后的值

之前有个业务,就是在点击ElementUI的tree组件时,在点击下的子组件增加一个在线离线的状态值

然后就出现问题了,我最开始的想法是点击后从后台接口获取到的值之后,遍历一边原数组,增加进去让tree自己更新,但是问题就出现在这里了!我的树是懒加载,他没办法精准的找到要更改的位置,一直都会有一个问题就是你点击前几个还好,都可以出现值,但是点击后面的就出不来了!!!
后来在网上冲浪的时候,查询如何让tree手动更新子节点,然后我发现可以直接获取子节点,这样我就可以不用遍历数组了,而且也可以精准的找到节点,这个业务以及优化了,特此记录一下,毕竟那个遍历我做了一周!!!

treeData.map((item) => {
      if (item.id == "根节点") {
        // 此id为根目录
        this.addStatus(statusData, item.children, treeDataIndex);
      } else {
        if (item.id == treeDataIndex  {
          item.children.map((citem) => {
            statusData.map((sitem) => {
              if (sitem.projectId == citem.id) {
                if (sitem.status === 1) {
                  if (citem.title.indexOf(" ") != -1) {
			// 这里用的方法就是在子节点上增加空格和全角空格,以此来判断是否在线
                    this.$set(citem, "title", citem.title);
                  } else {
                    this.$set(citem, "title", citem.title + " ");
                  }
                } else {
                  if (citem.title.indexOf(" ") != -1) {
                    this.$set(citem, "title", citem.title);
                  } else {
                    this.$set(citem, "title", citem.title + " ");
                  }
                }
              }
            });
          });
          this.$forceUpdate();
          return;
        }
        if (item.id == treeDataIndex && item.hasChildren) {
          // 可以查到所有的,可以进行赋值操作,除二级节点外,即三级目录
          this.tempString = item.id;
          console.log("父级为所查找的id,且含有子级", item);
          this.addStatus(statusData, item.children, treeDataIndex);
          return;
        } else if (item.id != treeDataIndex && item.hasChildren) {
          console.log("父级不是所查找的id,且含有子级", item);
          // 查找三级目录
          item.children.map((citem) => {
            statusData.map((sitem) => {
              if (sitem.projectId == citem.id) {
                if (sitem.status === 1) {
                  if (citem.title.indexOf(" ") != -1) {
                    this.$set(citem, "title", citem.title);
                  } else {
                    this.$set(citem, "title", citem.title + " ");
                  }
                } else {
                  if (citem.title.indexOf(" ") != -1) {
                    this.$set(citem, "title", citem.title);
                  } else {
                    this.$set(citem, "title", citem.title + " ");
                  }
                }
              }
            });
          });
          this.$forceUpdate();
          this.addStatus(statusData, item.children, treeDataIndex);
          return;
        }
      }
      });

更新后的代码

addStatus(node, result) {
      if (node.data.hasChildren) {
        node.childNodes.map((citem) => {
          result.data.data.map((sitem) => {
            if (sitem.projectId == citem.data.id) {
              if (sitem.status === 1) {
                if (citem.data.title.indexOf(" ") != -1) {
                  this.$set(citem.data, "title", citem.data.title);
                } else {
                  this.$set(citem.data, "title", citem.data.title + " ");
                }
              } else {
                if (citem.data.title.indexOf(" ") != -1) {
                  this.$set(citem.data, "title", citem.data.title);
                } else {
                  this.$set(citem.data, "title", citem.data.title + " ");
                }
              }
            }
          });
        });
        let keys = this.$refs.tree.getCheckedKeys(); //取得当前选择的node-key
        this.$refs.tree.updateKeyChildren(keys, treeData); //更新node-key的子节点
      }
}

标签:总结,citem,item,title,近期,else,工作,set,data
From: https://www.cnblogs.com/yuanZi666/p/17411100.html

相关文章

  • 关于工作,关于职场
    我最近的感悟就是,工具类的使用技能,要用到的时候再去学比较好,平时最基础的储备应该是对工作方法的思考,对底层逻辑的思想。拿测试来说,工作的逻辑应该是,分析测试对象是什么属性,该功能要提供给用户的侧重点是什么,怎么样去设计这个测试,然后再根据测试策略去选择测试方法和工具,最后执行......
  • GRPC与 ProtoBuf 的理解与总结
    转载请注明出处:1.GRPC官网:https://www.grpc.io/gRPC官方文档中文版:http://doc.oschina.net/grpcRPC框架的目标就是让远程服务调用更加简单、透明,其负责屏蔽底层的传输方式(TCP/UDP)、序列化方式(XML/Json)和通信细节。服务调用者可以像调用本地接口一样调用远程的......
  • 软件构造lab3总结
    软件构造的课程和实验已经结束一段时间了,如今回顾起来,收获颇丰,在此我将回忆总结一下在实验中出现的问题,总结一下从中得到的教训,进行一个盘的复,避免以后再出现这些问题。首先,最重要的一点就是不要拖延!不要拖延!不要拖延!在前两次实验中,我的时间把控还做的不错,两次实验......
  • 第四五次菜单计价及期中考试分析与总结
    前言:经过五次大作业的洗礼与折磨,相信大家已经被折磨疯掉了吧,经过上一次的blog总结经验我现在已经学会了blog的总结经验,接下来,我将会从这两次大作业即一次期中考试所涉及的知识点,难度以及题量还有我对这三次作业的看法这四个方面展开,有针对的展开一次总结性blog!1.题量:(1).......
  • PTA题目集4、5及期中考试的总结性Blog
    一、前言随着对java学习的越来越深入,需要学习的东西也越来越多,第四五次pta题目集主要还是以菜单计价系统为主,相较于以前的菜单计价系统,增加了异常情况的处理,以及特色菜,口味度等功能,使这个菜单计价系统越来越与现实生活相关联,当然与之同时题目的难度当然也是大幅度提高了。虽然这......
  • 5.16每日总结
    搭建python系统在桌面建立一个工作夹,然后每个章节都单独建立一个Python文件进行实验。比如可以新建一个pytips的目录,然后在该目录下,每个章节创建一个tips文件夹,里面创建对应的 .py 文件。......
  • javaPTA题目集4、5及期中考试总结
    一、前言通过这三周对Java课程的学习及pta大作业的练习,我了解了Java的编译环境如JDK、JRE等等,Java去掉了C++语言的许多功能,是安全的、解释的、高性能的语言,但最主要的还是Java的面向对象性,Java中的类与对象的创建以及类间关系,类与类之间方法属性的调用时常让我头疼,通过pta的练习......
  • 每日总结 5.17
    今日进行了python的学习。对于昨天的测试代码进行了分析学习。R7-1字典合并d1=eval(input())d2=eval(input())forkeyind2.keys():d1[key]=d1.get(key,0)+d2[key]t=list(d1.items())t.sort(key=lambdax:ord(x[0])iftype(x[0])==strelsex[0])......
  • 运维工作最佳助手-久壳机房一体化机柜
     随着云计算、移动互联网、物联网等产业蓬勃发展,数据中心规模不断增大并呈两极分化趋势,末端的微型数据中心越来越多,而零星分布的微型数据中心因地理、环境、建筑等方面的差异,一直面临难以难以统一规划建设和运营管理的困境,为业务的快速上线发展带来了挑战。 机房还是普遍的,只......
  • 神策杯 2018高校算法大师赛(个人、top2、top6)方案总结
    1竞赛背景神策数据推荐系统是基于神策分析平台的智能推荐系统。它针对客户需求和业务特点,并基于神策分析采集的用户行为数据使用机器学习算法来进行咨询、视频、商品等进行个性化推荐,为客户提供不同场景下的智能应用,如优化产品体验,提升点击率等核心的业务指标。神策推荐系统是一......