具有params异常的Alert.alert AlertManager

foz*_*elo 10 react-native

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

异常' - [_ NSDisctionary0 length]:发送到实例0x78964120的无法识别的选择器'在使用params在目标AlertManager上调用alerWithArgs时抛出

它来自我的代码行:

const response.error = 'bad credentials'
Alert.alert('Login error', response.error, [{ text: 'Ok' }])
Run Code Online (Sandbox Code Playgroud)

即使我从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')},
      ]
    )
Run Code Online (Sandbox Code Playgroud)

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

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

Ash*_*ado 31

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

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

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

  • 同样的问题,但我不必添加实际的消息,只需关闭停止展示然后再打开它. (3认同)

小智 6

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


Ste*_*nos 5

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

Alert.alert(
  'Alert Title',
  'My Alert Msg',
  [ ...
Run Code Online (Sandbox Code Playgroud)

Alert.alert明确需要第一个作为警报标题第二个作为消息。我仍然可以重复这个问题:如果您一次省略了一个字符串,并且收到此错误,则消息仍然会不断出现-即使您随后传递了正确的字符串参数- 除非应用程序仿真器/博览会都重新启动。

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