代码之家  ›  专栏  ›  技术社区  ›  Bomber

从createDrawerNavigator隐藏路由

  •  0
  • Bomber  · 技术社区  · 6 年前

    我怎么能瞒着我的路 createDrawerNavigator

    class TestYourselfScreen extends React.Component {
      static navigationOptions = {
        drawerLabel: () => null
      };
    

    我已经试过上面的方法了,但我的抽屉里仍然有这条路。我的 appNavigator 是:

    const config = {
        contentOptions: {
            activeTintColor: "#e91e63",
            inactiveTintColor: "#ffffff",
            itemStyle: {
                flexDirection: "row-reverse"
            }
        },
        drawerWidth: 300,
        overlayColor: "#003366",
        drawerPosition: "right",
        drawerBackgroundColor: "#009999",
        transparentCard: true,
        cardStyle: {
            backgroundColor: "transparent",
            opacity: 1
        },
        transitionConfig: () => ({
            containerStyle: {
                backgroundColor: "transparent"
            }
        })
    };
    
    const withHeader = (
        screen: Function,
        routeName: string,
        Header
    ): StackNavigator =>
        createStackNavigator(
            {
                [routeName]: {
                    screen,
                    navigationOptions: ({ routeName, props }) => ({
    
                        header: props => <Header {...props} />
                    })
                }
            },
            {
                initialRoute: "Home",
                transparentCard: true,
                cardStyle: {
                    backgroundColor: "transparent",
                    opacity: 1
                },
                transitionConfig: () => ({
                    containerStyle: {
                        backgroundColor: "transparent"
                    }
                })
            }
        );
    
    const routes = {
        VideoEpisodes: {
            screen: withHeader(VideoEpisodesScreen, "Video Episodes", DrawerHeader)
        },
        TestYourself: {
            screen: withHeader(TestYourselfScreen, "Test Yourself", DrawerHeader)
        },
        MyResults: {
            screen: withHeader(MyResultsScreen, "My Results", DrawerHeader)
        },
        Search: {
            screen: withHeader(SearchScreen, "Search", DrawerHeader)
        },
        About: {
            screen: withHeader(AboutScreen, "About", DrawerHeader)
        },
        BookmarkedVideos: {
            screen: withHeader(
                BookmarkedVideosScreen,
                "Bookmarked Videos",
                DrawerHeader
            )
        }
    };
    
    const NestedDrawer = createDrawerNavigator(routes, config);
    
    const MainStack = createStackNavigator(
        {
            Home: {
                screen: HomeScreen,
                navigationOptions: ({ props }) => ({
                    header: props => <BasicHeader {...props} />
                })
            },
            Drawer: {
                screen: NestedDrawer,
                navigationOptions: ({ props }) => ({
                    header: () => null
                })
            },
            VideoPlayer: {
                screen: VideoPlayerScreen,
                navigationOptions: ({ props }) => ({
                    header: props => <BasicHeader {...props} />
                })
            }
        },
        {
            initialRoute: "Home",
            transparentCard: true,
            cardStyle: {
                backgroundColor: "transparent",
                opacity: 1
            },
            transitionConfig: () => ({
                containerStyle: {
                    backgroundColor: "transparent"
                }
            })
        }
    );
    
    export default createAppContainer(MainStack);
    
    0 回复  |  直到 6 年前
    推荐文章