我们.map
在React-Native(0.59.3版)项目中遇到一个相当奇怪的现象:APK在各种物理设备或模拟器上都能很好地运行,但在Android 9.0上崩溃时却无法正常运行
TypeError: o.map is not a function.
(In 'o.map(function(t,n){n.icon_color=A.white,
-1!==s.findIndex(function(n){return t.title==n.title})
&&(t.icon_color=A.red)})','o.map' is undefined)
这是错误弹出窗口的样子:
我们知道,如果我们要应用的变量.map
不是数组,则会出现此消息,但是我们确实要确保它是正确的(无论如何,它也可以在其他各种版本和设备上运行)。我们在这里想念什么?
一些好奇的背景
我们有两个数组,一个是从API响应中获取的数据集的数组,另一个是从设备上的本地DB获取书签的数据集的列表。我们将地图功能应用于API响应数组,并检查收藏夹数据库中是否存在数据集中的某个项目。基于此,我们更改图标的颜色。根据我们的测试人员所说,他确实也可以访问Internet,但是无论如何我们都监控@react-native-community/netinfo
2.0.0版。
相关问题
如果o
不是数组,只会发生这种情况。您可以使用以下命令检查是否o
为数组
Array.isArray(o);
关于这个的更多细节在这里。可以肯定地排除这是Android 9特定问题的可能性。我有一个Android 9设备,已经测试map
了无数次。如果您只能在Android 9上始终如一地重现,则在它上运行时可能还会有其他作用。我建议您在上面运行^之前使用上述方法检查数组是否存在map
。
其他选项:
.find()
if用于单个元素和.filter()
多个元素。.map()
将是.forEach()
和for of
循环。如果您可以使用自己的确切代码更新问题(即使在桌面浏览器中无法重现),也乐意用更具体的答案来更新问题
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句