2017-04-05 40 views
0

作爲一個新手在反應原生我試圖找到一種方式來使用react-navigation與不使用導航欄導航(例如只需點擊登錄視圖中的按鈕進入主查看,點擊註銷按鈕返回登錄視圖)。反應本機導航與不同的文件

隨着反應的導航我犯了一個全球組件 '導航' 和我放置在主AppRegistry呼叫:

AppRegistry.registerComponent('myApp',() => Nav);

雖然在Navigator.js:

export const Nav = StackNavigator({ 
    Login: { screen: LoginView }, 
    AddStream: { screen: AddStreamView }, 
}); 

當我運行 react-native run-android 我得到第一個視圖加載在一個空白區域(它應該是導航器,我不想在我的應用程序中)

現在我怎樣才能從視圖中刪除Nav,以及如何在另一個文件中更改View onPress按鈕組件?

還有另外一個包能夠填補我的慾望嗎?

回答

1

From the docs,將headerMode設置爲none應該有效。這將隱藏在該StackNavigator中定義的所有屏幕上的標題。例如:

const Nav = StackNavigator({ 
    Login: { screen: LoginView }, 
    AddStream: { screen: AddStreamView }, 
},{ 
    headerMode: 'none', 
}); 

如果你想使它出現在某些屏幕,但不是所有的人來控制頭的知名度,那麼你可以設置headerModescreen併爲每個單獨的屏幕設置[導航道具爲header: { visible: false }See docs here。例如,如果要創建在另一個文件中的屏幕組件,它可能是這樣的:

// In the main file: 
const Nav = StackNavigator({ 
    Login: { screen: LoginView }, 
    AddStream: { screen: AddStreamView }, 
},{ 
    headerMode: 'screen', 
}); 

// Hidden for your Login screen: 
export default class LoginView extends Component { 
    static navigationOptions = { 
     header: { visible: false } 
    } 
    // etc... 
} 

// Visible for your AddStream screen: 
export default class AddStreamView extends Component { 
    static navigationOptions = { 
     header: { visible: true } 
    } 
    // etc... 
} 

編輯:錯過了你問題的第二部分。
爲了導航到不同的屏幕,你應該經過the Hello World tutorial的解釋。具體而言,this section。從教程相關的例子代碼:

render() { 
    const { navigate } = this.props.navigation; 
    return (
     <View> 
      <Text>Hello, Chat App!</Text> 
      <Button 
      onPress={() => navigate('Chat')} 
      title="Chat with Lucy" 
      /> 
     </View> 
    ); 
} 

在你的情況,'Chat'是,要麼'Login''AddStream'

+0

真的非常感謝,我錯過了教程的那一部分! – Pesti