让我们假设,在应用程序中有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>
答案 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'});