2016-03-15 2 views

risposta

10

Utilizzare immediatamenteResetRouteStack() non visualizza alcuna transizione. Per spingere una nuova scena e non consentire colpo di nuovo avere la vostra configureScene restituire questo:

return { 
    ...CustomNavigatorSceneConfigs.FloatFromRight, 
    gestures: {} 
}; 

La mia funzione configureScene simile a questa:

configureScene: function(route) { 
    if (route.sceneConfig) { 
    return route.sceneConfig; 
    } 
    return { 
    ...CustomNavigatorSceneConfigs.FloatFromRight, 
    gestures: {} 
    }; 
} 
+0

ho una risposta completamente definita da qui [collegamento] (http://stackoverflow.com/questions/32918666/example-of-navigation-between-views-in-react- nativo-android) –

+2

fantastico. ma come se, voglio abilitare lo scorrimento in alcune scene e disabilitare su un'altra scena? – projo

9

presumo che avete fatto qualcosa come questo-

il vostro navigatore è simile a questo-

<Navigator 
    style={styles.container} 
    initialRoute={{ name: 'signin', index: 0 }} 
    renderScene={ this.renderScene } 
    configureScene={() => { return Navigator.SceneConfigs.PushFromRight; }} 
/> 

E quando si fa clic su "Sign in" pulsante -

this.props.navigator.push({name: 'componentName'});

Invece di push() uso immediatelyResetRouteStack() -

this.props.navigator.immediatelyResetRouteStack([{name: 'componentName'}]); 

Questo resetta il routeStack ed evitare di tornare alla schermata di login.

Analogamente, quando si esce dalla schermata di destinazione, utilizzare immediatelyResetRouteStack() e impedire all'utente di tornare alla schermata di destinazione.

+0

grande risposta, grazie !!!!! –

+0

@AlainGoldman Sono contento che sia stato utile per te :) – Mihir

+0

Questo non ha funzionato per me; Ho avuto la fortuna di usare this.props.navigator.replace ({name: 'componentName'}); e navigando da lì con una nuova rotta. Ora se potessi mantenere le animazioni di transizione ... sospiro – kwishnu

Problemi correlati