未定义不是对象(正在评估'_this2.props.navigation.navigate')Alert.alert

时间:2019-03-28 20:37:55

标签: react-native

我需要发出警报,当按下警报时,我需要转到其他屏幕,但是,expo向我显示该错误,这是我的代码

    AlertaDi(){

      Alert.alert(
      'Alert Title',
      'Correcto',
      [
        {text: '==>', onPress: () => 
        this.props.navigation.navigate('InicioBot')}
      ],
    );

  }

如果我使用

onPress={() => this.props.navigation.navigate('InicioBot')} 

在一个按钮中,它可以工作,但是我需要在事件中进行导航

2 个答案:

答案 0 :(得分:0)

尝试一下:

AlertaDi = () => {
  Alert.alert('Alert Title', 'Correcto', [
    { text: '==>', onPress: () => this.props.navigation.navigate('InicioBot') },
  ]);
};

将您的anonymous function转换为arrow function以获得其父项的this上下文

答案 1 :(得分:0)

我找到了另一个解决方案,可以在按钮的onPress中放置

onPress={() => this.AlertaDi(this.props.navigation)}

像这样

<View style={{width:'15%', height:'70%', margin: 10 }}>

  <Button onPress={() => this.AlertaDi(this.props.navigation)}
  title="Niños"/>

</View>

这是代码

import React from 'react';
import { 
  View, 
  StyleSheet,
  Button,
  Alert,
 } from 'react-native';

export default class TallerBotonDo extends React.Component {

 AlertaDi(){

      Alert.alert(
      'Alert Title',
      'Correcto',
      [
        {text: '==>', onPress: () => this.props.navigation.navigate('InicioBot')}
      ],
    );

 }
 render() {

  return (
   <View style={{width:'45%', height:'45%', margin: 10 }}>

    <Button onPress={() => this.AlertaDi(this.props.navigation)}
     title="Niños"/>

   </View>

  );

 }

}