javascript - undefined 不是一个对象(评估'message.message_contacts.filter')
问题描述
嘿,这是一个带有 redux saga 的反应本机代码。代码返回一个list.map
带有“filterUnreadMessages = list”的代码......但由于某种原因,代码返回了这个特定的错误:
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,
),
解决方案
这意味着 that message.message_contacts
is 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 [];
}
}
推荐阅读
- c++ - 传递给函数时转换参数(c ++)
- javascript - XMLHttpRequest 到没有 URL 参数的站点
- stm32 - STM32示例中变量名开头的“uw”是什么意思?
- google-compute-engine - 如何在 GCE - Google Compute Engine 上获取特定实例组的外部 IP?
- ruby - 为什么表达式“Object.singleton_class.instance_method(:refine)”会引发“NameError”?
- c# - C# 线程 - 主线程卡在 inf 循环中
- react-native - Expo 是否需要 Internet 连接才能进行 React 本机构建?
- tensorflow - 如何确定我的机器学习脚本的最佳 GPU 数量?
- java - 为什么for循环可以初始化Java中按值传递的变量
- react-native - 为什么 NativeBase 中的 Header 组件不在顶部?