在react-native

时间:2015-12-11 21:53:46

标签: routes react-native navigator

我很难理解Navigator组件。 我有一组预设的路线

routes: [{
    name: 'settings'
}, {
    name: 'feed'
}, {
    name: 'matches'
}]

因此应用程序从Feed页面开始,然后您可以使用NavigationBar在3条路线之间来回切换[为了方便而省略代码]

<Navigator initialRoute={config.routes[1]}
           initialRouteStack={config.routes}
           renderScene={this.renderScene}} />

现在,我想引入一条新的临时路线[有点像在instagram / spotify] 因此,当您单击“显示配置文件”时,在Feed路径上,它会将新路由推送到堆栈。

this.props.nav.push({
  name: 'profile',
  sceneConfig: Navigator.SceneConfigs.FloatFromBottom
})

现在,令人讨厌的是,这会完全取代Matches路线,因为当我弹出这条路线返回Feed时。匹配路线已完全删除。 我已经看过API了,我已经尝试过使用替换方法等,但仍然会得到时髦的结果。

请参阅下面的GIF以便更好地理解。

这是使用导航器的正确方法,有一组预设路线吗?我在NavigationBar中使用jumpBack / jumpForward在它们之间移动,但是我无法为预设路线设置特定的sceneConfigs。我该怎么做呢?例如,如果我想将设置路由到FloatFromBottom?

Screenshot

1 个答案:

答案 0 :(得分:0)

我认为问题在于你首先使用的是路由栈。在我的应用程序中,我将所有场景转换编码为逻辑,并不断地将场景推送到场景中。

我认为使用 $('.popup').delay(3000).fadeOut(); 可能不足以满足您的使用需求。阅读http://devdocs.io/react_native/navigator

  

push(route) - 向前导航到一个新场景,压缩任何你可以跳转到的场景

所以当你使用initialRouteStack时,你会看到你破坏了第3个场景。尝试重组您的应用程序以推送和弹出,而无需预先确定场景。

您还可以尝试将个人资料路线添加为第4个场景,并在这些场景之间进行转换。