import React, { Component } from 'react'
import { View, Button, Text } from 'react-native'
import { createStackNavigator, createAppContainer } from 'react-navigation'
class Test1 extends Component {
render() {
return (
<View>
<Text>Test1</Text>
<Text>store:{this.props.store.nub}</Text>
<Button
title='跳转2'
onPress={() => {
this.props.navigation.navigate('Test02')
}}
/>
</View>
)
}
}
class Test2 extends Component {
render() {
return (
<View>
<Text>Test2</Text>
<Text>store:{this.props.store.nub}</Text>
<Button
title="跳转1"
onPress={() => {
this.props.navigation.navigate("Test01");
}}
/>
</View>
);
}
}
function PackClass(Element: any, Store: any) {
class Pack extends Component {
render() {
return <Element {...this.props} store={Store} />;
}
}
return Pack
}
class Store1{
nub: string = 'Store1的数据'
}
class Store2 {
nub: string = "Store2的数据";
}
const routeModular = [
{
path: "Test01",
route: Test1,
store: Store1
},
{
path: "Test02",
route: Test2,
store: Store2
}
];
const App = routeModular => {
const config = routeModular.reduce(function(prev, cur) {
const { path, route, store } = cur;
const _store = new store();
return {
...prev,
[path]: {
screen: PackClass(route, _store),
navigationOptions: ({}) => ({
title: `这是${path}的标题`
})
}
};
}, {});
return createStackNavigator(config, {
initialRouteName: Object.keys(config)[0],
headerMode: "screen"
});
};
export default createAppContainer(App(routeModular));
2019-11-24
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...