我正在尝试解决此错误消息:
异常' - [_ NSDisctionary0 length]:发送到实例0x78964120的无法识别的选择器'在使用params在目标AlertManager上调用alerWithArgs时抛出
它来自我的代码行:
const response.error = 'bad credentials'
Alert.alert('Login error', response.error, [{ text: 'Ok' }])
即使我从Facebook文档中复制/粘贴,我也会收到错误消息:
Alert.alert(
'Alert Title',
'My Alert Msg',
[
{text: 'Ask me later', onPress: () => console.log('Ask me later pressed')},
{text: 'Cancel', onPress: () => console.log('Cancel Pressed'), style: 'cancel'},
{text: 'OK', onPress: () => console.log('OK Pressed')},
]
)
从错误消息中可以明显导入组件。我猜。
有人遇到过这个吗?不知道该怎么做?
对于这个用户来说已经很晚了,但是在这里添加它以防万一其他人发现它有用。
设法通过在没有消息的情况下在世博会中创建警报来导致此问题,它只有标题和按钮。
它引起了上面提到的错误,不仅仅是因为它在本质上打破了世博会,并导致其他所有警报也从此失败,看起来就像海报一样。我不得不完全关闭expo应用程序,而不仅仅是重新加载,当然还要为消息添加一个空的''。
重启你的世博会解决这个问题
对于任何人看到这个,这是一个你的警报后的世博会的错误。如果不在展会中添加description参数,则提示错误,它将显示错误。除非你重新启动打包器和世博会,否则错误将持续很长时间!
解决方案:重启包!
使用expo,我一直遇到这个问题因为我忘了添加所需的两个字符串参数:
Alert.alert(
'Alert Title',
'My Alert Msg',
[ ...
Alert.alert明确需要第一个用于警报的标题,第二个用于消息。我仍然可以复制这个问题:如果你省略了其中一个字符串并且你得到了这个错误,那么该消息仍将继续出现 - 即使你后来传递了正确的字符串参数 - 除非app和emulator / expo都是重新启动。
这样做可以100%修复问题