2015-11-12 1 views
7

Ho visto alcuni esempi online utilizzando Navigator.NavigationBar. Sembra a portata di mano ma non so come usarlo. Ci sono documenti ovunque?react-native Navigator.NavigationBar - dove sono i documenti?

+1

Non ho visto alcun documento per questo, ma ho trovato il codice sorgente per il componente qui: https://github.com/facebook/react-native/blob/master/Libraries/CustomComponents/Navigator/NavigatorNavigationBar.js . Questo dovrebbe aiutare almeno a implementarlo in modo basilare. –

risposta

15

Ufficialmente non c'è una guida Navigator.Navigation Bar. Ma guardando su internet puoi trovare esempi di come funziona. Di seguito è riportato un esempio che ho utilizzato per uno dei miei progetti.

var PageOne = require('./pageone'), 
    PageTwo = require('./pagetwo'); 


var NavigationBarRouteMapper = { 
    LeftButton: function(route, navigator, index, navState){ 
    return(
     <Text>{ route.leftButton }</Text> 
    ) 
    }, 
    Title: function(route, navigator, index, navState){ 
    return(
     <Text>{ route.title }</Text> 
    ) 
    }, 
    RightButton: function(route, navigator, index, navState){ 
    return(
     <Text>{ route.rightButton }</Text> 
    ) 
    } 
} 

var App = React.createClass({ 

    renderScene: function(route, nav) { 
    switch (route.id) { 
     case 'PageOne': 
     return <PageOne navigator={ nav } title={ "PageOne" } /> 
     case 'PageTwo': 
     return <PageTwo navigator={ nav } leftButton={ "Back" } title={ "PageTwo" } />; 
    } 
    }, 

    render: function() { 
    return (
     <Navigator 
     initialRoute={{ id: 'PageOne', title: 'PageOne' }} 
     renderScene={ this.renderScene } 
     configureScene={(route) => { 
      if (route.sceneConfig) { 
      return route.sceneConfig; 
      } 
      return Navigator.SceneConfigs.FloatFromRight; 
     }} 
     navigationBar={ 
      <Navigator.NavigationBar 
      routeMapper={ NavigationBarRouteMapper } 
      /> 
     } 
     /> 
    ); 
    }, 
}); 
+1

Vieni su Facebook! – pie6k

+0

Ho provato a configurare il mio 'renderScene' in questo modo, ma non ha funzionato. I parametri 'leftButton',' rightButton' e 'title' devono essere passati nell'oggetto * route *, non nel componente. Probabilmente perché i componenti 'PageOne' e' PageTwo' trasmettono i parametri quando si chiama 'navigator.push' – chiborg

0

Vorrei anche aggiungere alla cassa l'interfaccia utente Explorer negli esempi che mostrano come usarlo. UIExplorer Navigator -

MODIFICA: React native ha svolto un buon lavoro aggiornando i propri documenti. Ecco la documentazione per il navigatore: navigator docs

AGGIORNAMENTO: fai un favore a te stesso e usa qualcosa come la navigazione reattiva. Questi collegamenti verranno interrotti a causa di MOLTI aggiornamenti a RN.

+1

Il collegamento è rotto. –

0

Aggiornamenti al 2017: Official documentation of React Native consiglia di utilizzare la libreria react-navigation.

variabile Setup:

import { 
    StackNavigator, 
} from 'react-navigation'; 

const App = StackNavigator({ 
    Home: { screen: HomeScreen }, 
    Profile: { screen: ProfileScreen }, 
}); 

Esempio:

class HomeScreen extends React.Component { 
    static navigationOptions = { 
    title: 'Welcome', 
    }; 
    render() { 
    const { navigate } = this.props.navigation; 
    return (
     <Button 
     title="Go to Jane's profile" 
     onPress={() => 
      navigate('Profile', { name: 'Jane' }) 
     } 
     /> 
    ); 
    } 
} 

leggere la documentazione ufficiale per informazioni dettagliate.