首先,我发现了许多问题相同的问题,但似乎没有一个对我有帮助。该代码确实到达了this.props.navigation.navigate('LoginScreen')
,但是引发了标题中看到的错误。文档指出,您只能使用this.props
,但似乎未定义。我还尝试仅使用props.navigation
甚至破坏checkedIfLogginIn
内部的导航作为类似checkIfLoggedIn = ({ navigation }) => {}
的参数。也许这是我所忽略的小事情,但问题是我现在已经安静了一会儿,我需要修复它。
import React, { Component } from 'react';
import { StyleSheet, Text, View, Alert } from 'react-native';
import{ createAppContainer, createSwitchNavigator } from 'react-navigation';
import { createStackNavigator } from 'react-navigation-stack';
import LoginScreen from './Components/LoginScreen';
import firebase from './firebase';
class App extends Component{
checkedIfLoggedIn = () => {
firebase.auth().onAuthStateChanged(user => {
if (user) {
this.props.navigation.navigate(AppStackNavigator);
} else {
this.props.navigation.navigate('LoginScreen');
}
})
}
componentDidMount(){
this.checkedIfLoggedIn();
}
render() {
return < AppContainer />;
}
}
export default App
答案 0 :(得分:1)
this.props.navigation.navigate
仅当您位于以下任一位置时,此选项才可使用:
import{ createAppContainer, createSwitchNavigator } from 'react-navigation', so p
import { createStackNavigator } from 'react-navigation-stack';
如果要使用它,则需要在里面,例如: 您可以使用onClick函数作为标记的支持:
<AppNav onClick={nav to ... or call a function to do something}/>