我正在使用反应导航,但是我的代码返回了;这个未定义的不是对象(正在评估'_this2.props.navigation.navigate)
我该如何解决此错误?
myCodes;
import React, { Component } from 'react';
import Login from './components/LoginScreen/LoginScreen';
import AddNewUser from './components/AddNewUserScreen/AddNewUserScreen';
import { createStackNavigator } from 'react-navigation';
class App extends Component{
render(){
return(
<Login />
);
}
}
const RootStack = ({ createStackNavigator }) => (
{
Login: Login,
AddNew: AddNewUser,
});
export default App;
LoginScreen.js
<TouchableOpacity style={styles.ButtonContainer} onPress={()=> this.props.navigation.navigate('AddNew')}>
<Text style={styles.buttonText} >GİRİŞ</Text>
</TouchableOpacity>
答案 0 :(得分:1)
您应通过调用RootStack
来启动应用,如下所示:
class App extends Component{
render(){
return(
<RootStack />
);
}
}
您还可以像这样在堆栈中设置initialRout:
const RootStack = createStackNavigator({
Login: Login,
AddNew: AddNewUser,
}, { initialRouteName: 'Login'} )
现在,按照您的定义,您的应用将从登录页面开始,并且它本身具有this.props.navigation
,因此您可以无错误地使用this.props.navigation.navigate('AddNew')
。
但是,如果您需要使用组件的导航,则必须像这样将this.props.navigation
从父级发送到组件:
<YourComponent navigation={this.props.navigation}/>
然后,您可以在YourComponent
组件中使用导航。
希望对您有帮助