undefined 不是对象(正在计算 'message.message_contacts.filter')

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

嘿,这是一个带有 redux saga 的 React 本机代码。代码 return 是 list.map 和“filterUnreadMessages = list”... 但出于某种原因,代码 return 这个特定错误:

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,
      ),

表示message.message_contactsundefined,所以不能在上面调用.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 [];
    }
  }