2019-11-24

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));
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我一直在路上,在路上的风景很美,在路上的故事很精彩…… 少而好学,如日出之阳;壮而好学,如日中之光;老而...
    勇哥谈创业阅读 1,397评论 0 0
  • 尼采《与孤独为伍》 尼老大:如何对待一天中的第一个想法? 我:一天中的第一个想法得看是什么,如果是正能量的,就去实...
    寒冬之城阅读 2,790评论 0 1
  • 这些年哭过,笑过,累过,怕过,忍过,最后懂了也变了,时间带走了太多东西,有些事想多了头疼,想通了心痛,一直以为没有...
    4b234d5ad45c阅读 2,187评论 0 0
  • 投射儿子一会起床心情愉快。 投射儿子今天一天心情愉快。 投射儿子今天一天遇事心态平和。 投射儿子今天遇事只想好的一...
    燕子重生scy阅读 942评论 0 1
  • 都知道,徐志摩一生有三个女人,张幼仪、林徽因、陆小曼。这位诗人的情感史真是丰富啊! 徐志摩的确很有才,写出了很多的...
    岁月如流toto阅读 3,449评论 0 0