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

这篇具有很好参考价值的文章主要介绍了大二暑期实习记录(一):处理组件绑定数据错误(数组解构,map()方法)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

好家伙,搬砖

 

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

 文章来源地址https://www.toymoban.com/news/detail-618365.html

1.错误描述:

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

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

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

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

 

 定义数据:

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

 

绑定数据

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

 

2.错误分析

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

后面对比两组数据

options                             variablee

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

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

大概写个map()就能搞定

 

3.源码定位

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

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

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

 

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

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

 .....

emmmm...

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

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

 

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)"

 

看看效果,

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

 搞定!

 

 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()方法)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 华为暑期实习

      多行数据 需要输入的时候可以用下面的结构: 输入两组数据: 一次输入两个数组时 ,可以用下面的输入方式:  HJ1 字符串最后一个单词的长度 描述 计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾) 输入描述:

    2023年04月12日
    浏览(30)
  • 美团后端开发暑期实习一面

    1、为什么使用UDP协议?缺点? 使用UDP协议的主要原因是它能够在网络中提供快速和高效的数据传输。与TCP协议相比,UDP协议没有建立连接和确认数据包的过程,因此具有更低的延迟和更高的吞吐量,适用于需要快速响应的应用场景,如在线游戏、视频和音频流等。 缺点,由

    2023年04月21日
    浏览(54)
  • Vue.js核心概念简介:组件、数据绑定、指令和事件处理

    本文介绍了Vue.js的四个核心概念:组件、数据绑定、指令和事件处理。每个概念都通过一个简单的示例进行了详细的解释。通过学习这些概念,您将能够充分利用Vue.js的强大功能,构建高效、灵活的Web应用程序。 1 组件 组件是Vue.js的核心概念之一,它允许您将UI分解为相互作

    2024年02月04日
    浏览(43)
  • 2023米哈游图像算法暑期实习面经

    来源:投稿 作者:LSC 编辑:学姐 本文不可转载 违者必究 1.自我介绍 2.能实习多久?公司在心目中的地位排序等 3.是否了解公司,用他们的产品吗?(比如原神) ,喜欢游戏吗? 我只知道公司技术很厉害,游戏做的很好,但是我不喜欢玩游戏,从来没玩过,王者都没玩过,我

    2024年02月16日
    浏览(25)
  • 2022 微软暑期实习研发提前批面经(全)

    【投递信息来源】校招丨微软2022暑期实习研发提前批正式启动! 2021.12.17        投递 2022.01.06        简历筛选通过 2022.01.17        一面 2022.01.19        平行二面 2022.01.21        leader终面 2022.01.26        信息采集 2022.01.27        意向书 【时间】2022.01.17 【时长】约

    2024年02月05日
    浏览(38)
  • 三七互娱,oppo,快手25届暑期实习内推

    三七互娱,oppo,快手25届暑期实习内推 ①OPPO 【内推码】:X6866447 【一键内推】:https://careers.oppo.com/university/oppo/campus/post?shareId=4546 【需求岗位】软件类、AI/算法类、硬件类、设计类、产品类 ②快手 【岗位】算法、工程、游戏,产品运营、市场、职能等 【一键内推】https://

    2024年04月27日
    浏览(22)
  • 豪取BAT!超详细暑期实习算法面经(非科班无论文)

    面试锦囊之面经分享系列,持续更新中  赶紧后台回复\\\" 面试 \\\"加入讨论组交流吧  本人基本情况:211本硕,本科电子信息工程,硕士通信与信息系统,典型的非科班,无论文,两段实习经历(均为算法岗,非大厂,一段CV,一段NLP)。 ⛳ 百度——推荐策略部—算法工程师(

    2024年02月03日
    浏览(27)
  • 微软 苏州STCA 2022暑期实习生 平行面+终面 面经

    博主背景 中流985软件工程专业本科,acm银牌选手,无实习经历,无项目。 这些部分是我在和一起参与面试的人沟通的时候了解到的,和大家做个分享,希望能帮助到各位。 代码能力 这个不用多说,代码能力越强越好。 沟通能力 这个点是很重要但是很容易被人忽略的一个点

    2024年02月05日
    浏览(38)
  • 腾讯 微信公众号&;&;小程序 暑期实习 一面秒挂

    题解 | #Prime Number# import mathdef getprimenum(): list1=[] list1   大数据开发工程师 1v1辅导+提问 大数据开发工程师 1v1辅导+提问里面也有很多干货分享,感兴趣的同学可以来看看https://www   题解 | #日期类# 加1之后处理一下细节就完了#include iostream#include lt   官方题解 题解pdf链接:sol

    2024年03月25日
    浏览(32)
  • 实习记录小程序|基于SSM的实习记录小程序设计与实现(源码+数据库+文档)

    知识管理 目录 基于SSM的习记录小程序设计与实现 一、前言 二、系统设计 三、系统功能设计  1、小程序端: 2、后台 四、数据库设计  五、核心代码  六、论文参考 七、最新计算机毕设选题推荐 八、源码获取:   博主介绍 :✌️大厂码农|毕设布道师,阿里云开发社区乘

    2024年04月11日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包