大二暑期实习记录(一):处理组件绑定数据错误(数组解构,map()方法)

大二,暑期,实习,记录,处理,组件,绑定,数据,错误,数组,解构,map,方法 · 浏览次数 : 43

小编点评

**1. 错误描述:** 在 `节点配置` 中使用 \"节点配置\" 方法添加数据时,左测数据选择框直接消失。 **2. 错误分析:** * 使用了 `dataBinding` 方法绑定数据。 * 左右组数据 `variablee` 和 `options` 的格式不同。 **3. 代码定位:** 数据绑定逻辑位于组件的 `data` 属性中,其中包含了数据处理部分。 **4. 修改错误:** 直接在 `data` 属性中定义 `computed` 属性,并在 `computed` 中使用 `map` 方法处理数据。 **5. 代码解释:** `computed` 属性的 `optionsnext` 方法返回一个新的数据流,其中每个元素都经过了处理。`computed` 属性的最终结果是根据 `dataType` 属性值进行处理的结果。 **6. 代码部分:** ```javascript computed: { optionsnext: { get() { // 处理数据 } } } ```

正文

好家伙,搬砖

 

今天在做组件迁移(从一个旧平台迁移到一个新平台)的时候,发现了一些小小的问题:

 

1.错误描述:

在穿梭框组件中,使用"节点配置"方法添加数据的时候,左测数据选择框直接消失了

这里我们猜测一下,大概是数据处理出了问题

此处,我们使用"数据绑定"绑定数据方法:

 

 定义数据:

 

绑定数据

 

2.错误分析

此时我们去看看"节点配置"方法和"数据绑定"绑定的数据长什么样子

后面对比两组数据

options                             variablee

                

到这里大概能看出问题来了,显然左边的数据多包了一层"model"

大概写个map()就能搞定

 

3.源码定位

那么,我们去翻该组件的源码:

哇塞,公司的人能敲出这么漂亮的组件,真是太厉害了

 

 .....

emmmm...

 

Element-UI,不愧是你啊

 

好了,回到正题

 

4.修改错误

此处我们直接定位到数据相关的核心部分

组件绑值

:data="(dataType == 'def' ? optionConfig : options)"

("def"对应"节点配置","cus"对应"数据绑定")

 

数据props:

props: {
  optionConfig: {
    type: [String, Object, Array],
    default: () => {
      return []
    }
  },
  options: {
    type: [Array, String, Object],
    default: () => {
      return []
    }
  },
}

 

也就是说,此处options中的数据没有经过处理就直接拿去使用了,那么我们只需要加上处理就好

我们使用计算属性,对数据进行一个预处理

computed: {
    optionsnext: {
      get() {
        let temp = [];
        temp = this.options?.map((item) => {
          return {
            ...item,
            disabled: item.model["disabled"],
            key: item.model["key"],
            label: item.model["label"],
          };
        }) ?? []
        return temp;
      }
    },
}

 

随后再把它绑上

:data="(dataType == 'def' ? optionConfig : optionsnext)"

 

看看效果,

 搞定!

 

 5.代码解释

 

computed: {
    optionsnext: {
      get() {
        let temp = [];
        temp = this.options?.map((item) => {
          return {
            ...item,
            disabled: item.model["disabled"],
            key: item.model["key"],
            label: item.model["label"],
          };
        }) ?? []
        return temp;
      }
    },
}

 

5.1.问:此处"?"和"??"的作用分别是什么,为什么要这样写?

 

答:

?.(可选链操作符)用于在访问属性或调用方法之前,先判断对象是否为null或undefined。

如果对象为null或undefined,就会短路返回undefined,而不会继续执行后续的属性访问或方法调用。

这样可以避免在空值上尝试访问属性或调用方法时出现错误,简化了代码的写法和错误处理。

 

 

??(空值合并操作符)用于在变量为空(null或undefined)时,提供一个默认值。

当左侧的值为null或undefined时,空值合并操作符会返回右侧的默认值。如果左侧的值不为空,则返回左侧的值。

 

 这样的写法避免了抛出异常。

 

5.2.问:...item的作用?

...item 的作用是使用对象展开运算符将 item 对象的属性和值依次展开到新的对象中

这样可以创建一个新的对象,其中包含了原始对象的所有属性及其对应的值。

...item 是一种简洁的写法,能够快速复制对象的属性和属性值。

它在使用对象字面量创建新的对象时很常用,可以方便地克隆或创建新的对象,而不改变原始对象的引用

 

与大二暑期实习记录(一):处理组件绑定数据错误(数组解构,map()方法)相似的内容:

大二暑期实习记录(一):处理组件绑定数据错误(数组解构,map()方法)

好家伙,搬砖 今天在做组件迁移(从一个旧平台迁移到一个新平台)的时候,发现了一些小小的问题: 1.错误描述: 在穿梭框组件中,使用"节点配置"方法添加数据的时候,左测数据选择框直接消失了 这里我们猜测一下,大概是数据处理出了问题 此处,我们使用"数据绑定"绑定数据方法: 定义数据: 绑定数据 2.错

经验分享:春招零Offer,5月份还有机会吗?

先说答案:5 月份依然有拿到 Offer 的机会。 5月份春招结束了吗? 对于应届大学生来说(也就是今年暑假毕业的学生),5 月中旬春招就陆续结束了,但是 5 月份会有很多补录的机会。 对于非应届的大学生来说(今年之后毕业的学生)来说,5 月和 6 月正是在暑假最好的时机,尤其是 6 月份会有大量的

爪哇,我初窥门径

2017年3月,我大二下学期了。 虽说一直在学习,持续在解决学习中遇到的问题,但迷茫依旧。 对着黑框编程,还是不知道Java在现实工作中是用来干什么的。 说实话,真的挺枯燥无趣的。 逐渐,我开始意识到,持续搞这些基础,是没有意义的。 我在网上看他们讨论的Java问题,很多我都看不懂是什么东西。 我要

阶段总结与展望——我的简历

我是一位刚进大二的大学生,在大数据这个专业已经学习了一年多了。 目前,对c++、python、java等编程语言有所了解,能够编写出一些基本的程序,当前接触了Linux操作系统、爬虫操作、Web前端、数据库,有一定的编写程序能力;在校期间获得了“python程序设计一等奖”。 在这门课程结束后,你将

爪哇,我初学乍道

>>上一篇(学校上课,是耽误我学习了。。) 2016年9月,我大二了。 自从我发现上课会耽误我学习,只要我认为不影响我期末学分的,我就逃课了。 绝大多数课都是要签到的,有的是老师突击喊名字,有的是手机打卡签到。 如果上课老师一开始就喊名字签到,签到环节结束,我就偷偷溜走了。 中途突击喊名字,要是被抓

好书推荐《数据血缘分析原理与实践 》:数据治理神兵利器

大家好,我是独孤风。又到了好书推荐的时间。近几年来,国内数据治理蓬勃发展,数据的价值不断放大,数据正成为一种资产,也是新型的生产要素。数据血缘一词作为数据治理的一个核心概念,更是被频频提及。 但是国内数据治理方面的书籍还是少之又少,大多数还停留在纯理论阶段,与实践,行业联系不够紧密。不过好消息来了,

算法金 | 我最常用的两个数据可视化软件,强烈推荐

大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 抱个拳,送个礼 预警:今天文章的描述可能会让你有点别扭;如感到不适,请及时停止 在我行走江湖的行囊中,有两件利器,tableau与matplotlib,它们足以让我应对各种数据可视化的较

PHP 真的不行了?透过 PHP 的前世今生看真相

大家好,我是码农先森。 1994年我出生在湖南的农村,就在同年加拿大的拉斯姆斯·勒多夫创造了 PHP,这时的 PHP 还只是用 Perl 编写的 CGI 脚本。或许是时间的巧合 PHP 变成了我后半生谋生的手段,当时拉斯姆斯·勒多夫写这些脚本的目的,只是为了统计自己网站的访问者。就是这样一个简单的目

B 站和小红书又又又崩了,罪魁祸首竟然又是他。。。

大家好,我是凌晨。 今天上午10点左右,我打开B站发现无法刷新视频列表和评论区,收藏夹和弹幕也均不可用。 原以为是手机网络问题,换网络重启手机都还是不行,第一时间打开微博,果然,B站崩了的新闻荣登榜首,小红书崩了的新闻也紧随其后。 不过,一般情况下,像这种大规模平台的这么多功能一起崩溃了显然是不太对

算法金 | Transformer,一个神奇的算法模型!!

大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 抱个拳,送个礼 在现代自然语言处理(NLP)领域,Transformer 模型的出现带来了革命性的变化。它极大地提升了语言模型的性能和效率,而自注意力机制是其中的核心组件。 今个儿我们将