Я новичок ie, работающий над реактивом. Я пытаюсь использовать встроенный навигатор стека для перемещения между экранами. при работе так же с функцией это работает. с компонентом класса я не смог получить вывод. Что мне нужно импортировать в файл LoginPage. js, прежде чем я начну работать?
У меня есть мое "приложение. js", как указано ниже
// importing dependencies
import React,{Component} from 'react';
import { StyleSheet, Text, View,Button } from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import {createStackNavigator} from '@react-navigation/stack'
// importing screens
import LoginPage from './LoginPage'
import ControlScreen from './ControlScreen'
import UpdateProfile from './UpdateProfile'
import GetDetails from './GetDetails'
// creating stack navigator
const StackNav = createStackNavigator();
export default class App extends Component {
constructor(){
super()
this.state={
SignedIn : 0
}
}
SignedInChecker= ()=>{
if(this.state.SignedIn===0){
return({
name : 'loginpage',
component :LoginPage,
Oname : 'control',
Ocomponent :ControlScreen
})
}
else
return({
name : 'control',
component :ControlScreen,
Oname : 'loginpage',
Ocomponent :LoginPage,
})
}
render(){
return (
<NavigationContainer >
<StackNav.Navigator initialRouteName={this.SignedInChecker().name} headerMode ='none' screenOptions ={{headerTitleAlign:'center',}}>
<StackNav.Screen name={this.SignedInChecker().name} component={this.SignedInChecker().component} />
<StackNav.Screen name={this.SignedInChecker().Oname} component={this.SignedInChecker().Ocomponent}/>
<StackNav.Screen name='UpdateProfile' component={UpdateProfile} />
<StackNav.Screen name='GetDetails' component={GetDetails} />
</StackNav.Navigator>
</NavigationContainer>
);
}
}
my LoginPage. js имеет следующий код
import React, { Component } from 'react';
import {Button,View,StyleSheet,Text,SafeAreaView} from 'react-native';
import GetDetails from './GetDetails'
class LoginPage extends Component(){
constructor(props){
super(props)
}
render(){
return(
<SafeAreaView>
<Text>
<Button onPress ={()=>this.props.navigation.navigate('GetDetails')} title='go to getdetails'/ >
</Text>
</SafeAreaView>
)
}
}
const styles = StyleSheet.create({
container : {
marginStart:20,
marginTop:25,
alignItems:'center'
}
})
export default LoginPage;
, когда я использую expo, я получаю сообщение об ошибке () undefined не является объектом (оценивает '_this.props.navigation.navigate')