我知道之前有人问过这个问题,但仅适用于旧版本的 react-navigation。从那时起,一些事情发生了变化。createBottomTabNavigator
使创建底部导航器的速度更快,并且该功能jumpToIndex()
不再存在。
我的问题是如何创建一个类似于 Instagram 的底部选项卡,其中第一个、第二个、第四个和第五个导航按钮的作用类似于通常的选项卡导航器,中间按钮 ( screen3
) 打开 modal screen3Modal
。
我已经在 react-navigation 3.xx 中尝试过,使用createBottomTabNavigator
和createStackNavigator
。
import React, { Component, } from 'react';
import { createBottomTabNavigator, createStackNavigator, createAppContainer, } from 'react-navigation';
import { Screen1, Screen2, Screen3, Screen4, Screen5 } from './screens';
const TabNavigator = createBottomTabNavigator({
screen1: { screen: Screen1, },
screen2: { screen: Screen2, },
screen3: {
screen: () => null,
navigationOptions: () => ({
tabBarOnPress: () => this.props.navigation.navigate('screen3Modal')
})
},
screen4: { screen: Screen4, },
screen5: { screen: Screen5, },
});
const StackNavigator = createStackNavigator({
Home: { screen: TabNavigator },
screen3Modal: { screen: Screen3, },
},
{
initialRouteName: 'Home',
});
const StackNavigatorContainer = createAppContainer(StackNavigator);
export default class App extends Component {
render() {
return <StackNavigatorContainer />;
}
}
此代码创建选项卡导航和模式导航。模式可以从另一个屏幕打开,但它不能从选项卡导航器中工作。我收到错误消息undefined is not an object (evaluating '_this.props.navigation')