离子2 - 遗漏的类型错误:无法读取属性“1”空
问题描述:
的我发现我的ionic 2
如果我使用运行在iphone5
Chrome
,iphone6
,ipad
或iPad pro
有这样的错误:离子2 - 遗漏的类型错误:无法读取属性“1”空
kernel.js:281 Uncaught TypeError: Cannot read property '1' of null
这显然是由追猎这条线:
...
ver: (navigator.appVersion.match('Chrome/([0-9\.]+)') ||
navigator.userAgent.match('Firefox/([0-9\.]+)'))[1],///<---[1] is the issue
...
我用Google搜索和阅读一些关于这一点,现在看来似乎是因为[1]
的。 this post建议删除[1]
。但我不确定kernel.js
在哪里。
这不是一个问题,因为我只部署到Android
(奇怪的是,即使是在模拟没有问题。只有在所有ios
无论是模拟或设备)。但我认为解决这个问题更好一些,以便我的客户在决定部署到ios
时不会咆哮。
我应该如何解决这个问题?
- 我在哪里可以找到
kernel.js
?我看着node_modules
,它太大而无法搜索。我想尝试删除它,看看它是否给我的问题。
答
如果没有匹配,JavaScript String.match()
函数将返回null,因此在您的情况下,如果useragent不是FireFox。除Chrome或FireFox之外的其他浏览器也会出现相同的错误。你需要检查一下。
编辑: iOS上的Chrome未在导航器中标记为“Chrome”,而是标记为“CriOS”。参见:https://developer.chrome.com/multidevice/user-agent