Я застрял здесь в течение последних нескольких дней, перепробовал почти все, что связано с реакцией навигации, но не повезло.Здесь поток.После загрузки ящика в главном меню я вызываю вид из вкладок, в котором я вызываю вид главного экрана, а на главном экране я пытаюсь перейти к экрану категорий.но получаю эту ошибку.this.props.navigation становится неопределенным в tabs.js, но имеет значение на предыдущем экране, который является основным.Пожалуйста, помогите.
App.js
export default class App extends React.Component {
constructor(){
super();
this.state = {
showRealApp: false
}
}
_onDone = () => {
this.setState({ showRealApp: true });
}
render() {
if (this.state.showRealApp) {
return <Navigator />;
} else {
return <AppIntroSlider slides={slides} onDone={this._onDone}/>;
}
}
}
AppRegistry.registerComponent('App', () => App)
AppNavigator.js
import { createStackNavigator, createAppContainer } from "react-navigation";
const RootStack = createStackNavigator({
Main: {
screen: Main,
navigationOptions: {header: null,}
},
Tabss: {
screen: Tabss,
navigationOptions: {header: null,}
},
Home: {
screen: Home,
navigationOptions: {header: null,}
},
SelectCategory: {
screen: SelectCategory,
navigationOptions: {header: null, }
},
});
const App = createAppContainer(RootStack);
export default App;
Main.js
`
export default class Main extends Component {
constructor(props)
{
super(props);
}
closeDrawer = () => {
this.drawer._root.close()
};
openDrawer = () => {
this.drawer._root.open()
};
render() {
// alert(this.props.navigation)
return (
<Drawer
ref={(ref) => { this.drawer = ref; }}
// { data: { avatar: this.state.avatar, name: this.state.name }
content={<Sidebar />}
onClose={() => this.closeDrawer()} >
<AppHeader
openDrawer={this.openDrawer.bind(this)}
/>
/////////////////// Calling Tab view///////
<Tabss />
</Drawer>
);
}
}
module.exports = Main;`
Tabs.js
export default class TabBars extends Component {
constructor(props){
super(props);
}
render() {
return (
<Container>
<Tab renderTabBar={() => <ScrollableTab style={{backgroundColor:'#DAA520'}} /> }>
<TabHeading={<TabHeading style={{backgroundColor: '#DAA520'}}>
<Icon name="home" style={{ color: 'white' }} />
</TabHeading>}>
<Home />
</Tab>
............
</Container>
)}
Home.js
export default class Home extends Component {
constructor(props) {
super(props);
}
render() {
return(
<View>
<Button onPress={() =>
this.props.navigation.navigate("SelectCategory")} style=
{{backgroundColor:'white', width: 210, height: 50, marginBottom: 30, alignItems: 'center', justifyContent: 'center'}}>
<Text style={{color: '#4169E1', fontSize: 18, fontWeight:'bold'}}>
Select and PLAY
</Text>
</Button>
</View>
);
}