2016-03-15 35 views

回答

10

使用immediatelyResetRouteStack()將不會顯示任何轉換。推新的場景和禁止刷卡回來有你configureScene返回此:

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

我configureScene功能如下:

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

我從這裏得到了完全定義的答案[link](http://stackoverflow.com/questions/32918666/example-of-navigation-between-views-in-react- native-android) –

+2

真棒。但是如何,我想在某些場景中滑動並禁用另一個場景? – projo

9

我假設你已經做了類似這 -

你的導航類似於這個 -

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

當你點擊「登錄」按鈕 -

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

代替push()使用immediatelyResetRouteStack() -

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

這將重置routeStack和防止回到登錄屏幕。

同樣,當您退出登陸屏幕時,請使用immediatelyResetRouteStack()並阻止用戶返回登陸屏幕。

+0

偉大的答案謝謝!!!!! –

+0

@AlainGoldman很高興它對你有用:) – Mihir

+0

這對我沒有用;我使用this.props.navigator.replace({name:'componentName'});並從那裏用新的路線導航。現在,如果我能保持過渡動畫...感嘆 – kwishnu