Search code examples
javascriptandroidiosreact-nativeredux-saga

undefined is not an object (evaluating 'message.message_contacts.filter')


Hey this is a react native code with redux saga.. The code returns a list.map with "filterUnreadMessages = list"... But for some reason the code return this especific error:

undefined is not an object (evaluating '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,
      ),


Solution

  • It means that message.message_contacts is undefined, so you can't call .filter on it. Alternatively, message itself is undefined.

    You can do a check first:

    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 [];
        }
      }