Alert.alert()在React Native 0.36.1中不起作用

时间:2017-01-25 15:36:48

标签: javascript android ios react-native

我正在尝试使用React Native中的Alert组件在Android和iOS之间创建一致的体验。我正在尝试运行示例警报。我导入Alert组件(为简洁起见省略了其他导入):

import {
  Alert, 
} from 'react-native';

然后我创建示例中提供的警报:

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

但是,我收到以下错误:

enter image description here

我找到了this post with a similar issue但是,我认为我的问题有所不同,因为:

  • 我正在运行React Native版本0.36.1
  • 我在Android和iOS上看到此错误

我很难过如何解决这个问题。有没有其他人有运气在0.36版上工作?

更新

根据要求,以下是我尝试使用警报的示例:

    <TouchableHighlight style={styles.button} underlayColor='transparent'   onPress={() => Alert.alert(
        'Alert Title',
        'Alert Message'
      )}>

这只是代码失败的一个实例。我已尝试跨多个组件和方法的多个警报,但没有一个正在工作。

更新2

值得注意的是,标准alert()功能可以正常运行而不会崩溃。但是,我无法指定警报的标题。例如,下面的代码将返回一个标题为#34; Alert&#34;和消息为&#34;请输入一个4位数代码&#34;。

      alert("Invalid Code", "Please enter a 4 digit code.")

我想要的输出是标题=&#34;无效代码&#34;和消息=&#34;请输入一个4位数代码。&#34;

1 个答案:

答案 0 :(得分:1)

我会尝试创建一个单独的函数来调用Alert.alert(&#39; foo&#39;)。然后在TouchableHighlight中,使用onPress={this.onYourFunctionName.bind(this)}