【问题标题】:Screen Navigation Header wont display in stacked Drawer Navigation ....React Navigation V2屏幕导航标题不会显示在堆叠的抽屉导航中 ....React Navigation V2
【发布时间】:2018-12-16 01:06:59
【问题描述】:

因此,由于某种原因,我似乎无法为嵌套在抽屉导航器中的屏幕显示任何标题。我已经对这个主题进行了大量研究,但仍然没有找到解决方案。

有些网站说navigationOptions需要作为函数调用=>试过了,没用。

有人说,因为我的 Drawer Navigator 嵌套在 Stack Nav 中,所以我的 Drawer 单独屏幕应该是他们自己单独的 Stacks.... 但是当我这样做时,它只在导航栏下方创建了一个看起来很小的东西,里面有标题,浮动到左边。

我尝试在导航器中声明 navigationOptions 并通过每个屏幕静态声明,但似乎没有任何效果,我不知道为什么这如此困难。

我使用过旧的 React Navigation V1,这从来都不是问题。如果有人有任何解决方案或建议,将不胜感激。

import React, { Component } from 'react';
import { createStackNavigator, createDrawerNavigator } from 'react-navigation';

import {View,Text,StyleSheet,Platform,TouchableOpacity,Image,StatusBar} from 'react-native';

import LoginScreen from '../screens/LoginScreen';
import HomeScreen from '../screens/HomeScreen';
import ProfileScreen from '../screens/ProfileScreen';
import CharityScreen from '../screens/CharityScreen';
import RunScreen from '../screens/RunScreen';


const DrawerNavigator = createDrawerNavigator({
  Home: {
    screen: HomeScreen
  },
  Profile: {
    screen: ProfileScreen
  },
  Charity: {
    screen: CharityScreen
  },
  Run: {
    screen: RunScreen
  },
});

const StackNav = createStackNavigator(
  { Login: LoginScreen,
    DrawerNav: DrawerNavigator
  },
  {
   navigationOptions: {
    headerStyle: {
      backgroundColor: '#2b3991',
    },
    headerTintColor: '#fff',
    },
  },
);

export default StackNav;

这是我的个人屏幕,其中声明了 navigationOptions:

import React, { Component} from 'react';
import { View, Text } from 'react-native';
import { Container, Content, Card, CardItem, Header, Left, Body, Button, Icon, Title, H1 } from 'native-base';


class HomeScreen extends React.Component {
  static navigationOptions = {
    headerMode: 'screen',
    title: 'Home',
    headerTitle: 'Home'
  };
  render() {
    return (
       <View style={{ flex: 1 , flexDirection: 'column', justifyContent: 'center' }}>
            <Card>
              <CardItem header style={{ flex: 1, justifyContent: 'center'}} >
                <H1 style={{ justifyContent: 'center'}} >Charity</H1>
              </CardItem>
              <CardItem>
                <Body>
                  <Icon name="images" style={{ fontSize: 50, borderWidth: 5 , borderStyle: 'dashed', borderRadius: 10, padding: 20}} />
                </Body>
              </CardItem>
            </Card>
            <Card style={{ flex: 1, backgroundColor: 'white', borderWidth: 2 }}></Card>
            <Card style={{ flex: 1, backgroundColor: 'white', borderWidth: 2 }}></Card>
        </View>
    );
  }
}

export default HomeScreen;

这是我为嵌套抽屉导航中的每个屏幕创建单独的堆栈导航时的应用图像。我在上面发布的代码不会产生这个图像......但只是想添加它以显示我尝试这个时发生的事情......因为这也让我感到困惑。 Image of Rendered App

【问题讨论】:

标签: javascript reactjs react-native react-navigation


【解决方案1】:

导航选项只能在版本 2 中配置其直接父级。

  • 为每个屏幕创建单独的堆栈。
  • 然后您可以在相应屏幕上配置createStackNavigator 的导航选项

我已经为你创建了expo link

【讨论】:

  • 太棒了!谢谢你。由于登录屏幕,我已经像这样设置了我的堆栈。但我刚刚发现了 Swtich Navigator 并实施了它,现在它的运行就像一个魅力。但是你到底是什么意思导航选项只能在其直接父级中配置?可以举个例子吗?
猜你喜欢
  • 2020-05-30
  • 1970-01-01
  • 2020-02-14
  • 1970-01-01
  • 1970-01-01
  • 2020-11-27
  • 1970-01-01
  • 2020-06-02
  • 2022-06-30
相关资源
最近更新 更多