Я пытаюсь создать бургер-навигацию, чтобы перейти на страницы моего компонента, но я не могу заставить страницу загружаться правильно, когда она вызывается. Похоже, что для входа в функцию pageDidMount () страниц, но не будет загружать ничего другого. Вот код меню навигационного бургера
//Navigation Drawer
import {
createDrawerNavigator,
DrawerContentScrollView,
DrawerItemList,
DrawerItem,
} from '@react-navigation/drawer';
import { NavigationContainer } from '@react-navigation/native';
const Drawer = createDrawerNavigator();
//react and ui/ux components
import React from 'react';
import {
//Blah blah blah
} from 'react-native';
import TodaysJobs from '../views/TodaysJobs';
import TomorrowsJobs from '../views/TomorrowsJobs';
function Feed() {
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Text>Feed Screen</Text>
</View>
);
}
function CustomDrawerContent(props) {
return (
<DrawerContentScrollView {...props}>
<DrawerItemList {...props} />
<DrawerItem label="Help" onPress={() => {
console.log('Navigating to: Today\'s Jobs Original')
props.navigation.navigate('TodaysJobs')
}} />
</DrawerContentScrollView>
);
}
//create component
class Navigation extends React.Component {
//disable navigation bar
static navigationOptions = { headerShown: false }
render() {
return (
<NavigationContainer>
<Drawer.Navigator initialRouteName="Feed" drawerContent={props => CustomDrawerContent(props)}>
<Drawer.Screen name="Feed" component={Feed} />
<Drawer.Screen name="TodaysJobs" component={TodaysJobs} />
</Drawer.Navigator>
</NavigationContainer>
);
}
}
export default Navigation;
Всякий раз, когда я пытаюсь загрузить TodaysJobs
, он открывает экран загрузки и говорит, что компонент смонтирован через консольный журнал, но загружается вечно. Ни один из моих других журналов консоли не показывает, что включает componentDidLoad
. Вот код этой страницы ...
/
/loading wait spinner overlay
import Loader from '../components/Loader'
//react and ui/ux components
import React from 'react'
import {
...Stuff here
} from 'react-native'
//create component
class TodaysJobs extends React.Component {
constructor(props) {
...stuff here
this.componentDidLoad = this.componentDidLoad.bind(this)
this.componentDidUnload = this.componentDidUnload.bind(this)
}
componentDidMount(){
console.log('Today\'s Jobs component mounted') //THIS GETS CALLED
this.props.navigation.addListener('willFocus', this.componentDidLoad)
}
componentDidLoad() {
console.log('Today\'s Jobs component loaded') //THIS DOES NOT
//FIREBASE CALLS
this.setState({
loading: false
})
}
render() {
return (
<View>
<Loader loading={this.state.loading} /> //THIS LOADER CONSTANTLY SPINS
{ !this.state.loading
<Mapping
//Mapping props
/>
}
</View>
)
}
}
export default TodaysJobs
Так что кажется, что перейти к нему, но просто ошибки. У меня это работало с <CustomButton text={"Today's Jobs"} onPress={() => { this.props.navigation.navigate('TodaysJobs') }}/>
, но теперь я хочу навигацию по бургеру вместо страницы кнопок, поэтому не уверен, в чем разница между кнопкой и навигацией по бургеру.
Пожалуйста, помогите. Спасибо