具有params异常的Alert.alert AlertManager

问题描述 投票:10回答:4

我正在尝试解决此错误消息:

异常' - [_ 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')},
      ]
    )

从错误消息中可以明显导入组件。我猜。

有人遇到过这个吗?不知道该怎么做?

react-native
4个回答
31
投票

对于这个用户来说已经很晚了,但是在这里添加它以防万一其他人发现它有用。

设法通过在没有消息的情况下在世博会中创建警报来导致此问题,它只有标题和按钮。

它引起了上面提到的错误,不仅仅是因为它在本质上打破了世博会,并导致其他所有警报也从此失败,看起来就像海报一样。我不得不完全关闭expo应用程序,而不仅仅是重新加载,当然还要为消息添加一个空的''。


6
投票

重启你的世博会解决这个问题


2
投票

对于任何人看到这个,这是一个你的警报后的世博会的错误。如果不在展会中添加description参数,则提示错误,它将显示错误。除非你重新启动打包器和世博会,否则错误将持续很长时间!

解决方案:重启包!


1
投票

使用expo,我一直遇到这个问题因为我忘了添加所需的两个字符串参数:

Alert.alert(
  'Alert Title',
  'My Alert Msg',
  [ ...

Alert.alert明确需要第一个用于警报的标题,第二个用于消息。我仍然可以复制这个问题:如果你省略了其中一个字符串并且你得到了这个错误,那么该消息仍将继续出现 - 即使你后来传递了正确的字符串参数 - 除非app和emulator / expo都是重新启动。

这样做可以100%修复问题

© www.soinside.com 2019 - 2024. All rights reserved.