首页 > 解决方案 > Angular 6 - null,未定义的检查不起作用 -ERROR TypeError:无法读取未定义的属性“区域”

问题描述

此 Kendo-dropdownlist 作为 Kendo Grid 列存在。

 <kendo-dropdownlist [data]="regions"
                     [textField]="'Region'"
                     [value]="'RegionMasterID'"
                     [formControl]="formGroup.get('Region')"
                     [filterable]="true"
                     (valueChange)="handleRegionChange($event, dataItem)"
                     (filterChange)="handleRegionFilter($event)">

 </kendo-dropdownlist>

这是组件代码:

handleRegionChange(value: any, dataItem: any) {

 if ((dataItem.Region !== null || dataItem.Region !== undefined) && value.Region) {
            this.SelectedRegion = value.Region;
            dataItem.Region = value.Region;
            dataItem.RegionMasterID = value.Region == "" ? '' : value.RegionMasterID;
        }
        else {
            this.SelectedRegion = '';
            dataItem.Region = '';
            dataItem.RegionMasterID = '';
        }

        this.update(dataItem);
    }

在 handleRegionChange 事件中,我正在尝试检查用户是否进行了任何选择。如果是,则 if-block 否则阻塞。如果用户单击下拉菜单并且未进行任何选择,则 dataItem.Region 为空,但不是执行 else 块,而是在控制台中引发错误:

ERROR TypeError: Cannot read property 'Region' of undefined

请指导如何解决问题

标签: angulartypescriptnullundefined

解决方案


推荐阅读