Поэтому, когда оно равно NULL, у меня появляется ошибка
Невозможно прочитать свойство 'имя' из неопределенного
Нет, это не null
, это undefined
,который отличается.
Ошибка выдается, потому что this.property.landlord
равен undefined
.В javascript при попытке получить доступ к свойству (в данном случае name
) undefined
выбрасывает TypeError , в соответствии с дизайном.
Для решения проблемы (которая не является проблемой,скорее случай), вы должны использовать fallbacks , чтобы проверить, существуют ли предки свойства.В этом случае я бы обработал это следующим образом:
{ displayName: this.l('Landlord'), value: (this.property && this.property.landlord && this.property.landlord.name) ? this.property.landlord.name : 'N/A'},
Этот фрагмент кода конкретно:
this.property && this.property.landlord && this.property.landlord.name
будет утверждать, что существует каждый предок name
.Если что-то из этого не произойдет, он вернет «N / A» без каких-либо исключений.