简体   繁体   English

双标题和双安装主屏幕-反应导航

[英]Double header & double mounted main screen - react-navigation

I've been having this problem for a long time and I just can't find an answer for fixing it. 我遇到这个问题已经很长时间了,但找不到解决问题的答案。
Here is an actual screenshot of what is happening. 这是正在发生的情况的实际屏幕截图。

The problems are: 问题是:

1. Back button by default on Newsfeed screen 1.默认情况下,Newsfeed屏幕上的“后退”按钮
2. Double header 2.双头
3. TabBar disappears when navigating to any global screens 3.导航到任何全局屏幕时,TabBar消失

The code itself: 代码本身:

routes.js

const RecordScreen = StackNavigator({
  Main:   { screen: Record },
  Choose: { screen: RecordChoose },
  Add:    { screen: RecordAdd }
})

const NewsfeedScreen = StackNavigator({
  Main:    { screen: Newsfeed },
  Details: { screen: NewsfeedDetails }
})

export const FriendsScreen = StackNavigator({
  Main: { screen: Friends },
  List: { screen: FriendList }
})

const Tabs = TabNavigator({
  Record:   { screen: RecordScreen },
  Newsfeed: { screen: NewsfeedScreen },
  Friends:  { screen: FriendsScreen }
})

// is it correct to nest TabNavigator with StackNavigator like this?
export const LoggedIn = StackNavigator({
  Main: { screen: Tabs },

  // global Screens
  Gallery:  { screen: Gallery },
  Profile:  { screen: Profile  },
  Settings: { screen: Settings }
})

export const LoggedOut = StackNavigator({
  Welcome: { screen: Welcome },
  SignIn:  { screen: SignIn },
  SignUp:  { screen: SignUp }
})

index.js

import React, { Component } from 'react'
import { LoggedIn, LoggedOut } from '@routes'

class Main extends Component {

  // of course is not exactly like this,
  // just an example
  state = {
    loggedIn: true
  }

  render() {
    return this.state.loggedIn
      ? <LoggedIn />
      : <LoggedOut />
  }
}

Any help is appreciated! 任何帮助表示赞赏! Thank you. 谢谢。

does the following change make things any better? 以下更改会使情况变得更好吗?

from: 从:

export const LoggedIn = StackNavigator({
  Main: { screen: Tabs },

  // global Screens
  Gallery:  { screen: Gallery },
  Profile:  { screen: Profile  },
  Settings: { screen: Settings }
})

to

const doNotShowHeaderOption = {
  navigationOptions: {
    header: null,
  },
};
export const LoggedIn = StackNavigator({
  Main: { screen: Tabs, ...doNotShowHeaderOption, },

  // global Screens
  Gallery:  { screen: Gallery },
  Profile:  { screen: Profile  },
  Settings: { screen: Settings }
})

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM