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

React native 如何从路由器中删除以前的路由?,react-native,React Native,我正在使用,并且我在尝试找出如何删除最后一条路由时遇到了问题,这样用户就无法返回(登录后) 有没有办法重置堆栈,使下一个路由成为根路由 注意,我也尝试了React NavigatorIOS,但它不会更改新路线上的标题(文本与初始路线相同)。使用重置为时,有关更改标题的问题: 这里有另一个可能的解决方案:使用Navigator(而不是NavigatorIOS)。基本上,在index.ios.js中,我们应该做: renderScene: function(route, nav) { s

我正在使用,并且我在尝试找出如何删除最后一条路由时遇到了问题,这样用户就无法返回(登录后)

有没有办法重置堆栈,使下一个路由成为根路由


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

使用
重置为时,有关更改标题的问题:

这里有另一个可能的解决方案:使用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
        }
      }
    />
    )
  }
替换当前路由,以便用户不会返回登录


可以找到一个例子。

哇,非常感谢!这很有效。我在第一天就放弃了Navigator,因为文档中冗长的示例让我感到困惑(也是React lol的第一天)。我认为NavigatorIOS上的问题是
reseto
的一个bug,因为标题与
push
配合得很好。FWIW对于未来的读者来说,t4t5/react本机路由器包没有通过道具公开navigaor,只有toRoute方法。我会看看我是否可以做一个PR来修复这个问题(或者使用标题UI代码)。你是对的,这是github上的相关问题
this.props.navigator.replace({ id: 'home' });