2016-09-19 68 views
1

我想隱藏導航頭只從我反應原生應用程序中的某些頁面。但我沒有得到它的解決方案。我不想爲這些網頁使用不同的導航實驗。如何從導航實驗中隱藏導航頭文件,僅從某些頁面反應原生態?

class AppContainerWithCardStack extends React.Component { 
    render() { 
     let { navigationState, backAction } = this.props 

     return (

      <NavigationCardStack 
      navigationState={navigationState} 
      onNavigateBack={backAction} 
      style={styles.container} 
      direction='vertical' 

      renderHeader={this._renderHeader} 
      renderScene={this._renderScene} 
     /> 
     ) 
     } 
    _renderHeader(props) 
    { const route = props.scene.route 
    if (route.key === 'Splash') 
    return null 
    else 
    return <NavigationHeader 
        {...props} 
        onNavigateBack={props.scene.index > 1 ? backAction : undefined} 
        renderTitleComponent={props => { 
         const title = props.scene.route.title 
         return <NavigationHeader.Title>{title}</NavigationHeader.Title> 
        }}/> 

    } 

回答

2

我們隱藏我們介紹第一個屏幕與此代碼(減少可讀性)導航標題:

import { NavigationExperimental } from 'react-native' 
const { CardStack, Header } = NavigationExperimental 

class IntroContainer extends Component { 
    render() { 
     return <CardStack 
      navigationState={this.props.nav} 
      renderScene={this.renderScene} 
      renderHeader={this.renderHeader}/> 
    } 
    renderHeader(sceneProps) { 
     const route = sceneProps.scene.route 
     if (route.key == 'Splash') return null // Here we skip header on Splash screen 
     // Next, we remove back navigation on second screen (optional) 
     const onNavigateBack = sceneProps.scene.index > 1 ? this.navigateBack : undefined 
     return <Header {...sceneProps} onNavigateBack={onNavigateBack}/> 
    } 
} 
+0

它的工作。我在我的代碼中使用renderOverlay財產到位renderHeader的。謝謝@vovkasm –

+1

我已經使用相同的代碼從splash中刪除了頭文件。但是當第二頁頭被加載第一頁頭標題(我從上面的代碼中刪除)時,動畫即將到來。這是怎麼發生的?請告訴我如何刪除它? @vovkasm –