Можно ли проверить, доступен ли объект перед Разрушением? - PullRequest
1 голос
/ 09 января 2020

У меня есть объект значений Destructure, но перед этим я хотел бы проверить, доступен ли объект,

const  { contactno, contactemail } =  this.props.app.user;

В этом случае объект user доступен не всегда , Из-за этого я получаю следующую ошибку,

TypeError: Cannot read property 'contactno' of undefined.

Следовательно, есть ли способ проверить, доступен ли объект до Destructure?

Ответы [ 3 ]

2 голосов
/ 09 января 2020

Используйте его, как показано ниже (вложенная деструктуризация). Если user равно undefined, то по умолчанию {} при деструктурировании. когда пользователь не определен, contactno, contactemail также не определен с этим.

const  { user: { contactno, contactemail } = {} } =  this.props.app;
2 голосов
/ 09 января 2020

используя операторы AND и OR, вы можете безопасно деструктурировать объект следующим образом.

const  { contactno, contactemail } =  (this.props.app && this.props.app.user) || {};
1 голос
/ 09 января 2020

Вы можете сделать это так

const  { contactno, contactemail } =  (this.props.app && this.props.app.user) ? this.props.app.user : {} ;
...