undefined не является объектом (оценка 'message.message_contacts.filter') - PullRequest
0 голосов
/ 03 августа 2020

Эй, это собственный код реакции с сагой о сокращении .. Код возвращает list.map с "filterUnreadMessages = list" ... Но по какой-то причине код возвращает эту especifi c ошибку:

undefined не является объектом (оценка 'message.message_contacts.filter')

  const messageIds = list.map(message => message.id);

  const filterUnreadMessages = list
    .map(message =>
      message.message_contacts.filter(
        contact => contact.contact_id === userId && contact.readed_at === null,
      ),

1 Ответ

0 голосов
/ 03 августа 2020

Это означает, что message.message_contacts - это undefined, поэтому вы не можете позвонить на .filter по нему. В качестве альтернативы, сам message не определен.

Сначала вы можете выполнить проверку:

const filterUnreadMessages = list
  .map(message => {
    if (message !== undefined && Array.isArray(message.message_contacts)) { // <-- check here
      return message.message_contacts.filter(
        contact => contact.contact_id === userId && contact.readed_at === null,
      )
    } else {
      return [];
    }
  }
...