rn-project
Version:
#### 项目介绍 类似一个脚手架的工具 此项目致力于构建一套基础,简单,可维护的 适配我司的react-native项目。可在此基础上搭建项目,封装了基础架构,基础组件,以及各种交互等;可快速进行项目搭建,开发。 # 涉及主要技术 - 1. 项目主要架构 * react native * react-navigation * redux
201 lines (192 loc) • 4.45 kB
JavaScript
import { createStackNavigator, createSwitchNavigator } from 'react-navigation';
import Main from './main';
import LoginScreen from './pages/login';
import Base from './pages/base';
import Icon from './pages/icon';
import ButtonScreen from './pages/button';
import InputScreen from './pages/input';
import Web from './pages/web';
import RadioScreen from './pages/radio';
import SwitchScreen from './pages/switch';
import TextareaScreen from './pages/textarea';
import OptionScreen from './pages/option';
import ToastScreen from './pages/toast';
import ModalScreen from './pages/modal';
import ActionSheetScreen from './pages/actionSheet';
import LoadingScreen from './pages/loading';
import CallUs from './pages/callUs';
import Utils from './pages/utilcomponet';
import Origin from './pages/origin';
import MarqueeScreen from './pages/marqueeLable';
import PwdScreen from './pages/password';
import ListScreen from './pages/list';
const removeHeader = () => ({
//需要在 SafeAreaView 手动添加 forceInset={{ top: 'never' }},将状态栏占位去除
header: null,
});
const commonNavigationOptions = {
headerStyle: {
backgroundColor: '#fff',
},
headerTintColor: '#000',
headerTitleStyle: {
fontWeight: 'bold',
},
};
const AppStack = createStackNavigator(
{
Main: {
screen: Main,
navigationOptions: removeHeader,
},
LoginScreen: {
screen: LoginScreen,
navigationOptions: removeHeader,
},
Base: {
screen: Base,
navigationOptions: () => ({
title: '基础组件',
}),
},
Icon: {
screen: Icon,
navigationOptions: () => ({
title: '公共Icon库',
}),
},
ButtonScreen: {
screen: ButtonScreen,
navigationOptions: () => ({
title: 'Button组件',
}),
},
InputScreen: {
screen: InputScreen,
navigationOptions: () => ({
title: 'input组件',
}),
},
RadioScreen: {
screen: RadioScreen,
navigationOptions: () => ({
title: 'Radio组件',
}),
},
SwitchScreen: {
screen: SwitchScreen,
navigationOptions: () => ({
title: 'switch组件',
}),
},
TextareaScreen: {
screen: TextareaScreen,
navigationOptions: () => ({
title: 'textarea组件',
}),
},
OptionScreen: {
screen: OptionScreen,
navigationOptions: () => ({
title: '操作反馈',
}),
},
ToastScreen: {
screen: ToastScreen,
navigationOptions: () => ({
title: 'toast提示',
}),
},
ModalScreen: {
screen: ModalScreen,
navigationOptions: () => ({
title: 'Modal模态框',
}),
},
ActionSheetScreen: {
screen: ActionSheetScreen,
navigationOptions: () => ({
title: 'action-sheet动作面板',
}),
},
LoadingScreen: {
screen: LoadingScreen,
navigationOptions: () => ({
title: 'Loading加载',
}),
},
CallUs: {
screen: CallUs,
navigationOptions: () => ({
title: '联系我们',
}),
},
Utils: {
screen: Utils,
navigationOptions: () => ({
title: '工具组件',
}),
},
Origin: {
screen: Origin,
navigationOptions: () => ({
title: '原生部分',
}),
},
MarqueeScreen: {
screen: MarqueeScreen,
navigationOptions: () => ({
title: '跑马灯',
}),
},
PwdScreen: {
screen: PwdScreen,
navigationOptions: () => ({
title: '安全键盘',
}),
},
ListScreen: {
screen: ListScreen,
navigationOptions: () => ({
title: '列表组件',
}),
},
Web: {
screen: Web,
navigationOptions: ({ navigation }) => ({
title: navigation.getParam('title') || '',
}),
},
// TestScreen: {
// screen: TestScreen,
// navigationOptions: () => ({
// title: '测试',
// }),
// },
},
{
initialRouteName: 'Main',
navigationOptions: commonNavigationOptions,
},
);
const AuthStack = createStackNavigator(
{
Main: {
screen: Main,
navigationOptions: removeHeader,
},
},
{
initialRouteName: 'Main',
},
);
export default createSwitchNavigator(
//每次只显示一个screen
{
App: AppStack,
Auth: AuthStack,
},
{
initialRouteName: 'App',
},
);