像Instagram这样无限的后退功能

时间:2017-11-09 14:18:43

标签: react-native react-native-router-flux

让我们假设,在应用程序中有ViewProfile组件,我们打开此组件,我们会看到喜欢此打开配置文件的用户列表。我们点击一​​个AnotherUser34(使用相同的ViewProfile组件)并查看他的个人资料和喜欢他的用户,然后我们再次点击/打开91AnotherUser,我们再打开10个配置文件,依此类推。如何实现每个功能?当我按下ViewProfile组件时,它会返回到Tabbar组件。我希望它以类似的方式返回打开组件。

我希望Instagram具有后退功能。

请建议,一个小提示将完成这项工作,谢谢。

下面是我的场景结构(具体来说:https://github.com/bartonhammond/snowflake/blob/master/src/snowflake.js

<Router>
<Scene  key='root' hideNavBar>
<Scene key='login'/>
<Scene key='register'/>
<Scene key='Tabbar'>
    <Scene key='Main'>
        <Scene key='ViewProfile'/>
    </Scene>
    <Scene key='Nav2'/>
    <Scene key='NavMenu3'/>
    <Scene key='NavMenu4'/>
</Scene>
</Router>

2 个答案:

答案 0 :(得分:2)

这是“克隆”场景的确切用例。

https://github.com/aksonov/react-native-router-flux/blob/master/docs/API.md

  

标记为克隆的场景将被视为模板,并在推送时克隆到当前场景的父级中。见例。

答案 1 :(得分:1)

我相信您可以使用“推送”功能实现此目的。

这样做,就是当你调用Actions.ViewProfile()时,它会添加到导航堆栈中。

我不是百分百肯定,我现在无法测试它。但我认为它会起作用。

您可以在此处查看docs。 (转到文档中的场景。)

 <Router>
    <Scene  key='root' hideNavBar>
    <Scene key='login'/>
    <Scene key='register'/>
    <Scene key='Tabbar'>
        <Scene key='Main'>
            <Scene key='ViewProfile' type="push"/>
        </Scene>
        <Scene key='Nav2'/>
        <Scene key='NavMenu3'/>
        <Scene key='NavMenu4'/>
    </Scene>
    </Router>

如果您想以编程方式:

Actions.ViewProfile({type: 'push'});