【问题标题】:Sharing common navigationOptions across screens跨屏幕共享通用导航选项
【发布时间】:2018-12-12 11:08:00
【问题描述】:

所以我无法在我的 React Native 项目中跨多个屏幕设置全局标题样式。

我已按照https://reactnavigation.org/docs/en/headers.html 中概述的步骤操作,但每次尝试运行时都会遇到语法错误。

我所做的只是设置标题背景颜色以及按钮和标题的色调。

我在下面附上了我的代码....如果有人能指出我做错了什么,将不胜感激。

[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: {
    screen: LoginScreen
  },
  DrawerNav: {
    screen: DrawerNavigator
  },
  {
    navigationOptions: {
      headerStyle: {
        backgroundColor: '#2b3991',
      },
      headerTintColor: '#fff'
    },
  },
});

export default StackNav;][1]

错误信息:

错误:捆绑失败:C:\Users\Michal\apps\run\src\nav\rootnav.js 中的 SyntaxError:C:/Users/Michal/apps/run/src/nav/rootnav.js:意外令牌(35:4) 33 |抽屉导航:{ 34 |屏幕:抽屉导航器,

35 | { | ^ 36 |导航选项:{ 37 |标题样式:{ 38 |背景颜色:'#2b3991',

【问题讨论】:

  • 请提供错误信息
  • @JayThummar 我刚刚添加了错误代码 - 它说它是语法错误?!

标签: javascript reactjs react-native react-navigation


【解决方案1】:

尝试此代码,因为您的代码中的 navigationOptions 存在语法错误

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

【讨论】:

  • 除了空白之外,我看不出我们的代码有什么不同。
  • 我已经编辑了答案,试试你的代码中的 navigationOptions 有一个语法错误
  • 感谢您的帮助.....@prernagupta 的解决方案有效。我假设是导致错误的屏幕周围的括号....
  • 是的,这是问题所在,所以我编辑了答案并尝试使用 VS Code 之类的其他编辑器,并使用 snipest 摆脱这个语法问题
【解决方案2】:
Try designing the navigator like below:-

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

【讨论】:

  • 谢谢。这解决了这个问题。我假设问题是右括号。
  • 是的.. 屏幕需要是导航器的对象。并且导航选项需要是另一个对象
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-14
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 2016-05-17
  • 2020-07-19
  • 1970-01-01
相关资源
最近更新 更多