具有params异常的Alert.alert AlertManager

时间:2017-01-30 18:12:48

标签: react-native

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

  

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

从错误消息中明显导入组件。我想。

有没有人碰到过这个?不知道该怎么做?

4 个答案:

答案 0 :(得分:31)

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

通过在没有消息的情况下在展会中创建提醒来设置导致此问题,它只有标题和按钮。

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

答案 1 :(得分:6)

重新启动博览会将解决此问题

答案 2 :(得分:2)

对于任何看到这一点的人来说,这是一旦您获得警报后,博览会的一个错误。在没有在博览会中添加description参数的情况下警告错误,它将显示错误。 该错误将持续很长时间,除非您重新启动打包程序和博览会!

解决方案: 重新启动程序包!

答案 3 :(得分:1)

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

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

Alert.alert明确需要警报标题的第一个和消息的第二个。我仍然可以复制该问题:如果您忽略其中一个字符串一次,但出现此错误,即使您随后传递了正确的字符串参数,消息仍会不断出现-除非应用程序 AND 和模拟器/ expo重新启动。

这样做可以100%地解决问题