如何从路由器中删除以前的路由?

时间:2015-05-28 17:40:32

标签: react-native

我正在使用t4t5/react-native-router而我无法弄清楚如何删除最后一条路线,以便用户无法返回(登录后)。

有没有办法重置堆栈,以便下一个路由是根?

注意,我也尝试过React NavigatorIOS,但它不会改变新路线上的标题(文本与初始路线相同)。

1 个答案:

答案 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