我正在使用t4t5/react-native-router而我无法弄清楚如何删除最后一条路线,以便用户无法返回(登录后)。
有没有办法重置堆栈,以便下一个路由是根?
注意,我也尝试过React NavigatorIOS,但它不会改变新路线上的标题(文本与初始路线相同)。
答案 0 :(得分:7)
使用resetTo
https://github.com/facebook/react-native/issues/476时,有关更改标题的问题。
这是另一种可能的解决方案:使用Navigator(不是NavigatorIOS)。基本上,在index.ios.js
我们应该这样做:
renderScene: function(route, nav) {
switch (route.id) {
case 'home':
return <Home navigator={nav}/>;
case 'login':
return <Login navigator={nav}/>;
case 'register':
return <Register navigator={nav}/>
default:
return (
<Login navigator={nav}/>
);
}
},
render: function() {
return (
<Navigator
style={{backgroundColor: '#fff'}}
initialRoute={{ id: "login" }}
renderScene={this.renderScene}
configureScene={(route) => {
if (route.sceneConfig) {
return route.sceneConfig;
}
return Navigator.SceneConfigs.FloatFromRight
}
}
/>
)
}
如果登录成功,请在登录中执行以下操作:
this.props.navigator.replace({ id: 'home' });
替换当前路线,以便用户不会返回登录。
可以找到一个示例here。