我只是无法弄清楚我在 StackNavigation 中究竟如何拥有 TabNavigation 或 DrawerNavigation (类似的东西):
所以从文档中如果我有这个:
import React from 'react';
import {
AppRegistry,
Text,
View,
} from 'react-native';
import {
createRouter,
NavigationProvider,
StackNavigation,
} from '@exponent/ex-navigation';
const Router = createRouter(() => ({
home: () => HomeScreen,
}));
class App extends React.Component {
render() {
return (
<NavigationProvider router={Router}>
<StackNavigation initialRoute={Router.getRoute('home')} />
</NavigationProvider>
);
}
}
class HomeScreen extends React.Component {
static route = {
navigationBar: {
title: 'Home',
}
}
render() {
return (
<View style={{alignItems: 'center', justifyContent: 'center', flex: 1}}>
<Text>HomeScreen!</Text>
</View>
)
}
}
AppRegistry.registerComponent('main', () => App);
我应该从有关添加 Drawer/TabNavigation 的文档中再次应用/插入这段代码:
import {
StackNavigation,
DrawerNavigation,
DrawerNavigationItem,
} from '@exponent/ex-navigation';
// Treat the DrawerNavigationLayout route like any other route -- you may want to set
// it as the intiial route for a top-level StackNavigation
class DrawerNavigationLayout extends React.Component {
static route = {
navigationBar: {
visible: false,
}
};
render() {
return (
<DrawerNavigation
id='main'
initialItem='home'
drawerWidth={300}
renderHeader={this._renderHeader}
>
<DrawerNavigationItem
id='home'
selectedStyle={styles.selectedItemStyle}
renderTitle={isSelected => this._renderTitle('Home', isSelected)}
>
<StackNavigation
id='home'
initialRoute={Router.getRoute('home')}
/>
</DrawerNavigationItem>
<DrawerNavigationItem
id='about'
selectedStyle={styles.selectedItemStyle}
renderTitle={isSelected => this._renderTitle('About', isSelected)}
>
<StackNavigation
id='about'
initialRoute={Router.getRoute('about')}
/>
</DrawerNavigationItem>
</DrawerNavigation>
);
}
_renderHeader = () => {
return (
<View style={styles.header}>
</View>
);
};
_renderTitle(text: string, isSelected: boolean) {
return (
<Text style={[styles.titleText, isSelected ? styles.selectedTitleText : {}]}>
{text}
</Text>
);
};
}
const styles = StyleSheet.create({
header: {
height: 20
},
selectedItemStyle: {
backgroundColor: 'blue'
},
titleText: {
fontWeight: 'bold'
},
selectedTitleText: {
color: 'white'
}
});
我将不胜感激任何帮助。感谢你们!