Вам нужно проверить, существует ли dataItem, прежде чем пытаться получить доступ к его атрибутам, это должно помочь. Добавьте это в ваш оператор if в начале.
if (dataItem && (dataItem.Region !== null || dataItem.Region !== undefined) && value.Region)
Если dataItem не соответствует действительности и не был передан, то это должно перейти прямо к блоку else.
Проблема в попытке доступа к атрибуту, который не существует. Как и undefined.Region
, вы получите ошибку при проверке неопределенного значения. &&
убедится, что dataItem верен (имеет значение) перед доступом. Таким образом, dataItem.Region
никогда нельзя проверить, если dataItem
не существует.
Глядя на документацию, я думаю, что вы можете передать только $event
в качестве единственного аргумента. Если все значения уникальны и не повторяются, попробуйте.
(valueChange)="handleRegionChange($event)"
public handleRegionChange(value)
{
let selected = this.regions.find(item => item.value === value);
if (selected)
{ // your code. }
else
{ // your code. }
}