【发布时间】:2019-02-15 09:06:35
【问题描述】:
我知道之前有人问过这个问题,但只针对较旧版本的 react-navigation。从那以后,一些事情发生了变化。 createBottomTabNavigator 可以更快地创建底部导航器,并且函数 jumpToIndex() 不再存在。
我的问题是如何创建一个类似 Instagram 的底部标签,其中第一、第二、第四和第五个导航按钮的作用类似于通常的标签导航器,而中间按钮 (screen3) 打开模式 screen3Modal。
我已经在 react-navigation 3.x.x 中尝试过,使用 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')
【问题讨论】:
标签: javascript reactjs react-native react-navigation