TypeError: Cannot read properties of null (reading ‘level‘)

编程入门 行业动态 更新时间:2024-10-28 16:29:29

TypeError: Cannot read <a href=https://www.elefans.com/category/jswz/34/1771261.html style=properties of null (reading ‘level‘)"/>

TypeError: Cannot read properties of null (reading ‘level‘)

一、分析问题

1、一个下拉框组件的更新由另一个下拉框组件控制被动更新列表,子级下拉框的值是由父级下拉框的值调用接口获取,每次父级下拉框值的改变都会改变子级下拉框的数据源也就是会改变子级下拉框的options,切换后之前的父级节点找不到就会报了这个错,父级节点不改变(即不切换)的话不会报错

二、解决方案

1、vue页面的html层

<div><el-row :gutter="15"><el-col :span="4"><div">父级下拉框:</div><el-select clearable v-model="parentId" @change="parentSelected" placeholder="请选择父级下拉框"><el-optionv-for="item in parentInfos":key="item.Id":label="item.Name":value="item.Id"></el-option></el-select></el-col><el-col :span="4"><div class="name">子级下拉框:</div><el-cascaderclass="entity"ref="cascader":key="isChangeSelectKeyNum"placeholder="请选择子级下拉框"clearablefilterablev-model="pId":options="options":props="{ checkStrictly: true }"></el-cascader></el-col></el-row>
</div>

2、vue页面的数据定义层

data () {return {parentId: '',parentInfos: [],pId: '',loading: false,list: [],currPage: 1,pageSize: 10,counts: 0,isChangeSelectKeyNum: 0,}},

3、vue页面的方法层

methods: {// 获取XX列表async parentSelected (val) {this.loading = truetry {const data = await GetXXXList({XXX: val,})++this.isChangeSelectKeyNumthis.loading = false},
}

4、本文的核心是isSelectShow,key值改变,级联组件会重新渲染

isSelectShow

5、至于为什么改变key的值,级联组件就会重新渲染?

在Vue中,key是用来追踪每个节点的身份,当key改变时,Vue会认为这是一个新的节点,因此会重新渲染这个组件。
首先,我们需要理解Vue的渲染机制。在Vue中,组件的渲染是基于它们的数据和属性进行的。当这些数据或属性发生变化时,Vue会自动检测到这些变化,并重新渲染相关的组件,以确保视图与数据保持同步。
key属性在Vue中具有特殊的意义。它被用作一个标识符,用于追踪每个节点的身份。当key的值发生变化时,Vue会认为这是一个全新的节点,因为key的变动意味着之前的数据和状态可能已经不再适用。为了确保视图的一致性和准确性,Vue会选择重新渲染这个组件。

对于el-cascader组件来说,它是一个级联选择器,通常用于选择有层次结构的数据。当你改变它的key值时,Vue会认为这是一个新的el-cascader组件,因此会触发重新渲染,以确保视图与最新的数据和状态相匹配。

总结起来,改变el-cascader的key值会触发重新渲染,是因为Vue通过key来识别组件的身份,当key发生变化时,意味着组件的状态或数据可能发生了变动,为了保持视图与数据的同步,Vue会选择重新渲染这个组件。

若本文有帮助到阅读本文的同学,欢迎点赞、关注、收藏,互相学习交流。

更多推荐

TypeError: Cannot read properties of null (reading ‘level‘)

本文发布于:2023-11-15 18:20:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1604075.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:properties   read   TypeError   level   reading

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!