2016-03-24 1 views
0

Je suis actuellement en train d'essayer d'utiliser remplacer le comportement du bouton de navigation droit de ma vue appelée 'AppointmentBookingView'. Je suis totalement confus sur la façon dont le Navigator et le NavigationBar fonctionnent ensemble, donc n'ont pas été en mesure de trouver la solution. Quelqu'un peut-il clarifier si cela peut même être fait? J'ai utilisé React Native Gifted Forms.Comment modifier les boutons de la barre de navigation dans une vue?

myapp.ios.js:

static NavbarRouteMapper = { 
    LeftButton(route, navigator, index, navState) { 
     if (index === 0) { 
      return null; 
     } 
     var previousRoute = navState.routeStack[index - 1]; 
     return (
      <TouchableOpacity 
       onPress={() => navigator.pop()} 
       style={styles.navBarLeftButton}> 
       <Text style={[styles.navBarText, styles.navBarButtonText]}> 
        Back 
       </Text> 
      </TouchableOpacity> 
     ); 
    }, 

    RightButton(route, navigator, index, navState) { 

    }, 

    Title(route, navigator, index, navState) { 
     return (
      <Text style={[styles.navBarText, styles.navBarTitleText]}> 
       {route.name || 'MyApp'} 
      </Text> 
     ); 
    } 
}; 

render(){ 
    return (
     <Navigator 
      style={styles.appContainer} 
      configureScene={this.configureScene} 
      initialRoute={{name: 'MyApp', component: BookAppointmentView }} 
      navigationBar={ 
       <Navigator.NavigationBar 
        style={styles.navBar} 
        routeMapper={MyApp.NavbarRouteMapper} 
       /> 
      } 
      renderScene={this.renderScene.bind(this)} 
     /> 

    ); 
} 

est ici que je voudrais remplacer le comportement

AppointmentBookingView.js

<GiftedForm 
    formName='bookingForm' // GiftedForm instances that use the same name will also share the same states 

    openModal={(route) => { 
     route.giftedForm = true; 
     this.props.navigator.push(route); 
    }} 
> 
</GiftedForm> 

Répondre

1

Qu'est-ce que vous pourriez faire quelque chose comme ceci:

... 

RightButton(route, navigator, index, navState) { 
    if (route.name === 'AppointmentBookingView') { 
     // Here put the button you want and whatever you want it to do 
    } 
}, 

... 

Ma réponse c'est un peu en retard mais j'espère que ça aide